O aspecto mais crítico da segurança MCP é a confiança. Você deve apenas conectar seus agentes CrewAI a servidores MCP nos quais confie plenamente.
Ao integrar serviços externos como servidores MCP (Model Context Protocol) aos seus agentes CrewAI, a segurança é fundamental.
Servidores MCP podem executar código, acessar dados ou interagir com outros sistemas com base nas ferramentas que expõem.
É crucial compreender as implicações e seguir as melhores práticas para proteger suas aplicações e dados.
Executar código arbitrário na máquina onde o agente está rodando (especialmente com o transporte Stdio se o servidor puder controlar o comando executado).
Expor dados sensíveis do seu agente ou do seu ambiente.
Manipular o comportamento do seu agente de maneiras não intencionais, incluindo realizar chamadas de API não autorizadas em seu nome.
Sequestrar o processo de raciocínio do agente através de técnicas sofisticadas de prompt injection (veja abaixo).
Somente conecte-se a servidores MCP em que confie.
Antes de configurar o MCPServerAdapter para conectar a um servidor MCP, certifique-se de saber:
Quem opera o servidor? É um serviço conhecido, de reputação confiável, ou um servidor interno sob o seu controle?
Quais ferramentas ele expõe? Entenda as capacidades das ferramentas. Elas poderiam ser mal utilizadas caso um invasor obtenha controle ou se o próprio servidor for malicioso?
Quais dados ele acessa ou processa? Saiba se há informações sensíveis que possam ser enviadas ou manipuladas pelo servidor MCP.
Evite conectar-se a servidores MCP desconhecidos ou não verificados, especialmente se seus agentes lidam com tarefas ou dados sensíveis.
2. Prompt Injection Seguro via Metadados de Ferramentas: O Risco do “Model Control Protocol”
Um risco significativo e sutil é o potencial para prompt injection através dos metadados das ferramentas. Veja como funciona:
Quando seu agente CrewAI se conecta a um servidor MCP, ele normalmente solicita uma lista de ferramentas disponíveis.
O servidor MCP responde com metadados para cada ferramenta, incluindo nome, descrição e descrições de parâmetros.
O LLM (Modelo de Linguagem) subjacente do seu agente usa esses metadados para entender como e quando usar as ferramentas. Muitas vezes esses metadados são incorporados no system prompt ou contexto do LLM.
Um servidor MCP malicioso pode construir seus metadados (nomes, descrições) para incluir instruções ocultas ou explícitas. Essas instruções podem atuar como prompt injection, efetivamente fazendo o LLM se comportar de determinada maneira, revelar informações sensíveis ou executar ações maliciosas.
Crucialmente, esse ataque pode ocorrer simplesmente ao conectar-se a um servidor malicioso e listar suas ferramentas, mesmo que seu agente nunca decida usar essas ferramentas. A mera exposição aos metadados maliciosos pode ser suficiente para comprometer o comportamento do agente.Mitigação:
Extrema Cautela com Servidores Não Confiáveis: Reitere: Não conecte-se a servidores MCP nos quais você não confie totalmente. O risco de injection de metadados torna isso fundamental.
O transporte Stdio (Entrada/Saída Padrão) é tipicamente usado para servidores MCP locais, rodando na mesma máquina que sua aplicação CrewAI.
Isolamento de Processo: Embora geralmente seja mais seguro pois não envolve exposição de rede por padrão, assegure-se de que o script ou comando executado pelo 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.
Saneamento de Entrada: Se o seu script de servidor Stdio recebe entradas complexas derivadas das interações do agente, garanta que o script saneie essas entradas para evitar injection de comandos ou outras vulnerabilidades na lógica do script.
Limite de Recursos: Esteja atento ao fato de que o processo servidor Stdio consome recursos locais (CPU, memória). Assegure-se de que seja bem comportado, evitando esgotar os recursos do sistema.
O Problema do Confused Deputy é uma vulnerabilidade clássica de segurança que pode se manifestar em integrações MCP, especialmente quando um servidor MCP atua como proxy para outros serviços de terceiros (ex: Google Calendar, GitHub) que usam OAuth 2.0 para autorização.Cenário:
Um servidor MCP (vamos chamá-lo de MCP-Proxy) permite que seu agente interaja com o ThirdPartyAPI.
O MCP-Proxy usa seu próprio client_id estático ao comunicar-se com o servidor de autorização do ThirdPartyAPI.
Você, como usuário, autoriza legitimamente o 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.
Um invasor cria um link malicioso. Esse link inicia um fluxo OAuth com o MCP-Proxy, mas é projetado para enganar o servidor de autenticação do ThirdPartyAPI.
Se você clicar nesse link e o servidor de autenticação do ThirdPartyAPI encontrar seu cookie de consentimento existente para o client_id do MCP-Proxy, pode deixar de pedir seu consentimento novamente.
O 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.
Mitigação (Principalmente para Desenvolvedores de Servidores MCP):
Servidores proxy MCP usando IDs de cliente estáticos para serviços downstream devem obter consentimento explícito do usuário para cada aplicação cliente ou agente conectando-se a eles antes de iniciar um fluxo OAuth com o serviço de terceiros. Isso significa que o MCP-Proxy deve exibir uma tela de consentimento.
Implicação para Usuários CrewAI:
Fique atento se um servidor MCP redireciona você para múltiplas autenticações OAuth, especialmente se isso for inesperado ou se as permissões solicitadas forem muito amplas.
Prefira servidores MCP que deixem clara sua própria identidade e a identidade dos serviços de terceiros que possam fazer proxy.
a. Ataques de DNS Rebinding (Especialmente para SSE)
DNS rebinding permite que um site controlado por atacante contorne a política de mesma origem e faça requisições para servidores na rede local do usuário (ex: 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:
Valide os Headers 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.
Ligue em 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.
Autenticação: Exija autenticação para todas as conexões ao seu servidor MCP caso não seja destinado a acesso público anônimo.
Criptografe Dados em Trânsito: Sempre use HTTPS (HTTP Seguro) para URLs de servidores MCP remotos. Isso criptografa a comunicação entre sua aplicação CrewAI e o servidor MCP, protegendo contra escuta e ataques Man-in-the-Middle (MitM). O MCPServerAdapter respeitará o esquema (http ou https) fornecido na URL.
Isso é uma preocupação principalmente para desenvolvedores de servidores MCP, mas entender o conceito ajuda a escolher servidores seguros.“Token passthrough” é quando um servidor MCP aceita um token de acesso do seu agente CrewAI (que pode ser um token para um serviço diferente, por exemplo, 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:
Burlar controles de segurança (como limites de taxa ou permissões granulares) no servidor MCP ou na API downstream.
Quebra trilhas de auditoria e responsabilização.
Permite uso indevido de tokens roubados.
Mitigação (Para Desenvolvedores de Servidores MCP):
Servidores MCP NÃO DEVEM aceitar tokens que não foram explicitamente emitidos para eles. Devem validar o claim de audiência dos tokens.
Implicação para Usuários CrewAI:
Embora isso não seja diretamente controlável pelo usuário, destaca a importância de conectar-se a servidores MCP bem projetados e que sigam as melhores práticas de segurança.
Verifique a Identidade: Se o servidor MCP fornece ferramentas sensíveis ou acesso a dados privados, ele DEVE implementar mecanismos de autenticação robustos para verificar a identidade do cliente (sua aplicação CrewAI). Isso pode envolver chaves de API, tokens OAuth ou outros métodos padrão.
Princípio do Menor Privilégio: Certifique-se de que as credenciais usadas pelo MCPServerAdapter (se houver) tenham apenas as permissões necessárias para acessar as ferramentas requeridas.
Validação de Entrada é Crítica: Servidores MCP devem validar rigorosamente todas as entradas recebidas de agentes antes de processá-las ou passá-las para as ferramentas. Esta é a principal defesa contra diversas vulnerabilidades comuns:
Injection de Comando: Caso uma ferramenta construa comandos de shell, queries SQL ou outras instruções de linguagens interpretadas a partir da entrada, o servidor deve sanitizar cuidadosamente esta entrada para evitar que comandos maliciosos sejam injetados e executados.
Path Traversal: Se uma ferramenta acessa arquivos com base em parâmetros de entrada, o servidor deve validar e sanitizar esses caminhos para evitar acesso a arquivos ou diretórios não autorizados (por exemplo, bloqueando sequências ../).
Verificações de Tipo e Faixa de Dados: Servidores devem garantir que os dados de entrada estejam nos tipos esperados (ex: string, número, booleano) e dentro de faixas aceitáveis ou em formatos definidos (ex: regex para URLs).
Validação de Schema JSON: Todos os parâmetros das ferramentas devem ser validados estritamente com seus esquemas JSON definidos. Isso ajuda a capturar requisições mal formatadas precocemente.
Atenção do Lado do Cliente: Embora a validação no servidor seja fundamental, como usuário CrewAI, fique atento aos dados que seus agentes são configurados para enviar a ferramentas MCP, especialmente ao interagir com servidores MCP novos ou menos confiáveis.
Previna Abusos: Servidores MCP devem implementar limite de taxa para prevenir abusos, seja intencional (ataques de negação de serviço) ou não intencional (ex: um agente mal configurado fazendo muitas requisições).
Re-tentativas do Lado do Cliente: Implemente lógica de repetição sensata em suas tarefas CrewAI se problemas de rede transitórios ou limites de taxa do servidor forem esperados, mas evite re-tentativas agressivas que possam aumentar a carga do servidor.
4. Conselhos para Implementação de Servidor MCP Seguro (Para Desenvolvedores)
Se você está desenvolvendo um servidor MCP ao qual agentes CrewAI possam se conectar, considere estas melhores práticas além dos pontos acima:
Siga Práticas de Código Seguro: Adote princípios padrão de programação segura para sua linguagem e framework escolhidos (ex: OWASP Top 10).
Princípio do Menor Privilégio: Certifique-se de que o processo que executa o servidor MCP (especialmente para 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.
Gerenciamento de Dependências: Mantenha todas as dependências do lado do servidor, incluindo pacotes do sistema operacional, runtimes de linguagem e bibliotecas de terceiros, sempre atualizadas para corrigir vulnerabilidades conhecidas. Use ferramentas para escanear por dependências vulneráveis.
Padrões Seguros por Padrão: Projete seu servidor e suas ferramentas para serem seguros por padrão. Por exemplo, recursos potencialmente arriscados devem ser desabilitados por padrão ou requerer ativação explícita, com avisos claros.
Controle de Acesso para Ferramentas: Implemente mecanismos robustos para controlar quais agentes ou usuários autenticados e autorizados podem acessar ferramentas específicas, especialmente as que são poderosas, sensíveis ou incorram em custos.
Tratamento Seguro de Erros: Servidores não devem expor mensagens detalhadas de erro interno, traces de stack ou informações de debug para o cliente, pois estas podem revelar detalhes internos ou potenciais vulnerabilidades. Logue os erros de forma abrangente no lado do servidor para diagnóstico.
Log e Monitoramento Abrangentes: Implemente um log detalhado de eventos relevantes para segurança (ex: tentativas de autenticação, invocações de ferramenta, erros, mudanças de autorização). Monitore esses logs em busca de atividades suspeitas ou padrões de abuso.
Auditorias de Segurança Regulares: Caso seu servidor MCP manipule dados sensíveis, realize operações críticas ou seja exposto publicamente, considere auditorias de segurança periódicas conduzidas por profissionais qualificados.
Ao entender essas considerações de segurança e implementar as melhores práticas, você pode aproveitar com segurança o poder dos servidores MCP em seus projetos CrewAI.
Estes pontos não esgotam o assunto, mas cobrem as questões de segurança mais comuns e críticas.
As ameaças continuarão a evoluir, por isso é importante se manter informado e adaptar suas medidas de segurança de acordo.
Esta página foi útil?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"CrewAI","colors":{"primary":"#EB6658","light":"#F3A78B","dark":"#C94C3C"},"logo":{"light":"https://mintcdn.com/crewai/5SZbe87tsCWZY09V/images/crew_only_logo.png?fit=max\u0026auto=format\u0026n=5SZbe87tsCWZY09V\u0026q=85\u0026s=439ca5dc63a1768cad7196005ff5636f","dark":"https://mintcdn.com/crewai/5SZbe87tsCWZY09V/images/crew_only_logo.png?fit=max\u0026auto=format\u0026n=5SZbe87tsCWZY09V\u0026q=85\u0026s=439ca5dc63a1768cad7196005ff5636f"},"favicon":"https://mintcdn.com/crewai/sz5CkjPWxVjBAZE7/images/favicon.svg?fit=max\u0026auto=format\u0026n=sz5CkjPWxVjBAZE7\u0026q=85\u0026s=16c03dad58d05417a2e442ff942d2ce7","api":{"playground":{}},"appearance":{"default":"system","strict":false},"background":{"decoration":"grid"},"navbar":{"links":[{"icon":"arrow-up-right-from-square","href":"https://app.crewai.com","label":"Start Cloud Trial"}],"primary":{"type":"github","href":"https://github.com/crewAIInc/crewAI"}},"footer":{"socials":{"website":"https://crewai.com","x":"https://x.com/crewAIInc","github":"https://github.com/crewAIInc/crewAI","linkedin":"https://www.linkedin.com/company/crewai-inc","youtube":"https://youtube.com/@crewAIInc","reddit":"https://www.reddit.com/r/crewAIInc"}},"seo":{"metatags":{"og:type":"website","og:site_name":"CrewAI Documentation","og:image":"https://docs.crewai.com/images/crew_only_logo.png","twitter:card":"summary_large_image","twitter:site":"@crewAIInc","keywords":"AI agents, multi-agent systems, CrewAI, artificial intelligence, automation, Python framework, agent collaboration, AI workflows"}},"fonts":{"family":"Inter"},"errors":{"404":{"redirect":true}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode",{"title":"Request a feature","description":"Join the discussion on GitHub to request a new feature","icon":"plus","href":"https://github.com/crewAIInc/crewAI/issues/new/choose"}],"display":"header"},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":""},{"language":"pt-BR","href":"edge/pt-BR"},{"language":"ko","href":"edge/ko"},{"language":"ar","href":"edge/ar"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"crewai","hasAudioNarration":false,"actualSubdomain":"crewai","customDomains":["docs.crewai.com"],"gitSource":{"type":"github","owner":"crewaiinc","repo":"crewai","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf01ab737ceb5e71081551","collectionId":"633b6451-fde0-41b1-97f0-7ab4ef6ab679","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf01ab737ceb5e71081551"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adf01ab737ceb5e71081551","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"en","tag":"Documentation","count":8428},{"language":"ko","tag":"기술 문서","count":7754},{"language":"pt-BR","tag":"Documentação","count":7187},{"language":"ar","tag":"التقنية التوثيق","count":7154},{"language":"en","tag":"Tools","count":3870},{"language":"ko","tag":"도구 (Tools)","count":3579},{"language":"ar","tag":"الأدوات","count":3336},{"language":"pt-BR","tag":"Ferramentas","count":3057},{"language":"en","tag":"Learn","count":1345},{"language":"ko","tag":"학습","count":1199},{"language":"pt-BR","tag":"Aprenda","count":1199},{"language":"ar","tag":"التعلّم","count":1103},{"language":"en","tag":"Core Concepts","count":1019},{"language":"ko","tag":"핵심 개념","count":989},{"language":"pt-BR","tag":"Conceitos-Chave","count":989},{"language":"ar","tag":"المفاهيم الأساسية","count":917},{"language":"en","tag":"Observability","count":864},{"language":"en","tag":"Search \u0026 Research","count":840},{"language":"ko","tag":"Observability","count":816},{"language":"pt-BR","tag":"Observabilidade","count":816},{"language":"en","tag":"Guides","count":808},{"language":"ko","tag":"검색 및 연구","count":804},{"language":"ar","tag":"Observability","count":748},{"language":"ar","tag":"البحث والاستكشاف","count":740},{"language":"en","tag":"Web Scraping \u0026 Browsing","count":708},{"language":"en","tag":"File \u0026 Document","count":672},{"language":"ko","tag":"파일 \u0026 문서","count":672},{"language":"ko","tag":"웹 스크래핑 \u0026 브라우징","count":672},{"language":"pt-BR","tag":"Web Scraping \u0026 Navegação","count":624},{"language":"ar","tag":"الملفات والمستندات","count":616},{"language":"ar","tag":"استخراج بيانات الويب","count":616},{"language":"pt-BR","tag":"Arquivo \u0026 Documento","count":576},{"language":"ko","tag":"가이드","count":567},{"language":"pt-BR","tag":"Guias","count":567},{"language":"ar","tag":"الأدلّة","count":534},{"language":"pt-BR","tag":"Pesquisa","count":480},{"language":"ko","tag":"시작 안내","count":460},{"language":"pt-BR","tag":"Começando","count":460},{"language":"en","tag":"AI \u0026 Machine Learning","count":456},{"language":"ar","tag":"البدء","count":428}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v1.15.13/pt-BR/mcp/security","slug":"/v1.15.13/pt-BR/mcp/security","pageMetadata":{"title":"Considerações de Segurança MCP","description":"Saiba mais sobre as principais melhores práticas de segurança ao integrar servidores MCP com seus agentes CrewAI.","icon":"lock","mode":"wide","href":"/v1.15.13/pt-BR/mcp/security"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Saiba mais sobre as principais melhores práticas de segurança ao integrar servidores MCP com seus agentes CrewAI.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`visão-geral`,children:`Visão Geral`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`O aspecto mais crítico da segurança MCP é a `,_jsx(_components.strong,{children:`confiança`}),`. Você deve `,_jsx(_components.strong,{children:`apenas`}),` conectar seus agentes CrewAI a servidores MCP nos quais confie plenamente.`]})}),`\n`,_jsx(_components.p,{children:`Ao integrar serviços externos como servidores MCP (Model Context Protocol) aos seus agentes CrewAI, a segurança é fundamental.\nServidores MCP podem executar código, acessar dados ou interagir com outros sistemas com base nas ferramentas que expõem.\nÉ crucial compreender as implicações e seguir as melhores práticas para proteger suas aplicações e dados.`}),`\n`,_jsx(Heading,{level:`3`,id:`riscos`,children:`Riscos`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Executar código arbitrário na máquina onde o agente está rodando (especialmente com o transporte `,_jsx(_components.code,{children:`Stdio`}),` se o servidor puder controlar o comando executado).`]}),`\n`,_jsx(_components.li,{children:`Expor dados sensíveis do seu agente ou do seu ambiente.`}),`\n`,_jsx(_components.li,{children:`Manipular o comportamento do seu agente de maneiras não intencionais, incluindo realizar chamadas de API não autorizadas em seu nome.`}),`\n`,_jsx(_components.li,{children:`Sequestrar o processo de raciocínio do agente através de técnicas sofisticadas de prompt injection (veja abaixo).`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`1-confiando-em-servidores-mcp`,children:`1. Confiando em Servidores MCP`}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:_jsx(_components.strong,{children:`Somente conecte-se a servidores MCP em que confie.`})})}),`\n`,_jsxs(_components.p,{children:[`Antes de configurar o `,_jsx(_components.code,{children:`MCPServerAdapter`}),` para conectar a um servidor MCP, certifique-se de saber:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quem opera o servidor?`}),` É um serviço conhecido, de reputação confiável, ou um servidor interno sob o seu controle?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quais ferramentas ele expõe?`}),` Entenda as capacidades das ferramentas. Elas poderiam ser mal utilizadas caso um invasor obtenha controle ou se o próprio servidor for malicioso?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Quais dados ele acessa ou processa?`}),` Saiba se há informações sensíveis que possam ser enviadas ou manipuladas pelo servidor MCP.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Evite conectar-se a servidores MCP desconhecidos ou não verificados, especialmente se seus agentes lidam com tarefas ou dados sensíveis.`}),`\n`,_jsx(Heading,{level:`3`,id:`2-prompt-injection-seguro-via-metadados-de-ferramentas-o-risco-do-“model-control-protocol”`,children:`2. Prompt Injection Seguro via Metadados de Ferramentas: O Risco do “Model Control Protocol”`}),`\n`,_jsx(_components.p,{children:`Um risco significativo e sutil é o potencial para prompt injection através dos metadados das ferramentas. Veja como funciona:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Quando seu agente CrewAI se conecta a um servidor MCP, ele normalmente solicita uma lista de ferramentas disponíveis.`}),`\n`,_jsx(_components.li,{children:`O servidor MCP responde com metadados para cada ferramenta, incluindo nome, descrição e descrições de parâmetros.`}),`\n`,_jsx(_components.li,{children:`O LLM (Modelo de Linguagem) subjacente do seu agente usa esses metadados para entender como e quando usar as ferramentas. Muitas vezes esses metadados são incorporados no system prompt ou contexto do LLM.`}),`\n`,_jsx(_components.li,{children:`Um servidor MCP malicioso pode construir seus metadados (nomes, descrições) para incluir instruções ocultas ou explícitas. Essas instruções podem atuar como prompt injection, efetivamente fazendo o LLM se comportar de determinada maneira, revelar informações sensíveis ou executar ações maliciosas.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`Crucialmente, esse ataque pode ocorrer simplesmente ao conectar-se a um servidor malicioso e listar suas ferramentas, mesmo que seu agente nunca decida `,_jsx(_components.em,{children:`usar`}),` essas ferramentas.`]}),` A mera exposição aos metadados maliciosos pode ser suficiente para comprometer o comportamento do agente.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Mitigação:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Extrema Cautela com Servidores Não Confiáveis:`}),` Reitere: `,_jsx(_components.em,{children:`Não conecte-se a servidores MCP nos quais você não confie totalmente.`}),` O risco de injection de metadados torna isso fundamental.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`segurança-do-transporte-stdio`,children:`Segurança do Transporte Stdio`}),`\n`,_jsx(_components.p,{children:`O transporte Stdio (Entrada/Saída Padrão) é tipicamente usado para servidores MCP locais, rodando na mesma máquina que sua aplicação CrewAI.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Isolamento de Processo`}),`: Embora geralmente seja mais seguro pois não envolve exposição de rede por padrão, assegure-se de que o script ou comando executado pelo `,_jsx(_components.code,{children:`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.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Saneamento de Entrada`}),`: Se o seu script de servidor Stdio recebe entradas complexas derivadas das interações do agente, garanta que o script saneie essas entradas para evitar injection de comandos ou outras vulnerabilidades na lógica do script.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Limite de Recursos`}),`: Esteja atento ao fato de que o processo servidor Stdio consome recursos locais (CPU, memória). Assegure-se de que seja bem comportado, evitando esgotar os recursos do sistema.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`ataques-de-confused-deputy`,children:`Ataques de Confused Deputy`}),`\n`,_jsxs(_components.p,{children:[`O `,_jsx(_components.a,{href:`https://en.wikipedia.org/wiki/Confused_deputy_problem`,children:`Problema do Confused Deputy`}),` é uma vulnerabilidade clássica de segurança que pode se manifestar em integrações MCP, especialmente quando um servidor MCP atua como proxy para outros serviços de terceiros (ex: Google Calendar, GitHub) que usam OAuth 2.0 para autorização.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Cenário:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Um servidor MCP (vamos chamá-lo de `,_jsx(_components.code,{children:`MCP-Proxy`}),`) permite que seu agente interaja com o `,_jsx(_components.code,{children:`ThirdPartyAPI`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`O `,_jsx(_components.code,{children:`MCP-Proxy`}),` usa seu próprio `,_jsx(_components.code,{children:`client_id`}),` estático ao comunicar-se com o servidor de autorização do `,_jsx(_components.code,{children:`ThirdPartyAPI`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Você, como usuário, autoriza legitimamente o `,_jsx(_components.code,{children:`MCP-Proxy`}),` a acessar o `,_jsx(_components.code,{children:`ThirdPartyAPI`}),` em seu nome. Durante esse processo, o servidor de autenticação pode definir um cookie no seu navegador indicando seu consentimento para o `,_jsx(_components.code,{children:`client_id`}),` do `,_jsx(_components.code,{children:`MCP-Proxy`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Um invasor cria um link malicioso. Esse link inicia um fluxo OAuth com o `,_jsx(_components.code,{children:`MCP-Proxy`}),`, mas é projetado para enganar o servidor de autenticação do `,_jsx(_components.code,{children:`ThirdPartyAPI`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Se você clicar nesse link e o servidor de autenticação do `,_jsx(_components.code,{children:`ThirdPartyAPI`}),` encontrar seu cookie de consentimento existente para o `,_jsx(_components.code,{children:`client_id`}),` do `,_jsx(_components.code,{children:`MCP-Proxy`}),`, pode `,_jsx(_components.em,{children:`deixar de`}),` pedir seu consentimento novamente.`]}),`\n`,_jsxs(_components.li,{children:[`O `,_jsx(_components.code,{children:`MCP-Proxy`}),` pode, então, ser enganado a encaminhar um código de autorização (para o `,_jsx(_components.code,{children:`ThirdPartyAPI`}),`) para o atacante, ou um código de autorização MCP que o atacante possa usar para se passar por você perante o `,_jsx(_components.code,{children:`MCP-Proxy`}),`.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Mitigação (Principalmente para Desenvolvedores de Servidores MCP):`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Servidores proxy MCP usando IDs de cliente estáticos para serviços downstream `,_jsx(_components.strong,{children:`devem`}),` obter consentimento explícito do usuário para `,_jsx(_components.em,{children:`cada aplicação cliente ou agente`}),` conectando-se a eles `,_jsx(_components.em,{children:`antes`}),` de iniciar um fluxo OAuth com o serviço de terceiros. Isso significa que o `,_jsx(_components.code,{children:`MCP-Proxy`}),` deve exibir uma tela de consentimento.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Implicação para Usuários CrewAI:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Fique atento se um servidor MCP redireciona você para múltiplas autenticações OAuth, especialmente se isso for inesperado ou se as permissões solicitadas forem muito amplas.`}),`\n`,_jsx(_components.li,{children:`Prefira servidores MCP que deixem clara sua própria identidade e a identidade dos serviços de terceiros que possam fazer proxy.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`segurança-no-transporte-remoto-sse-\u0026-http-transmitível`,children:`Segurança no Transporte Remoto (SSE \u0026 HTTP Transmitível)`}),`\n`,_jsx(_components.p,{children:`Ao conectar-se a servidores MCP remotos via Server-Sent Events (SSE) ou HTTP transmitível, práticas padrão de segurança web são essenciais.`}),`\n`,_jsx(Heading,{level:`3`,id:`considerações-de-segurança-sse`,children:`Considerações de Segurança SSE`}),`\n`,_jsx(Heading,{level:`3`,id:`a-ataques-de-dns-rebinding-especialmente-para-sse`,children:`a. Ataques de DNS Rebinding (Especialmente para SSE)`}),`\n`,`\n`,_jsxs(_components.p,{children:[`DNS rebinding permite que um site controlado por atacante contorne a política de mesma origem e faça requisições para servidores na rede local do usuário (ex: `,_jsx(_components.code,{children:`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.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Estratégias de Mitigação para Implementadores de Servidores MCP:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Valide os Headers `,_jsx(_components.code,{children:`Origin`}),` e `,_jsx(_components.code,{children:`Host`})]}),`: Servidores MCP (especialmente com SSE) devem validar os headers HTTP `,_jsx(_components.code,{children:`Origin`}),` e/ou `,_jsx(_components.code,{children:`Host`}),` para garantir que as requisições venham dos domínios/clientes esperados.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[`Ligue em `,_jsx(_components.code,{children:`localhost`}),` (127.0.0.1)`]}),`: Ao rodar servidores MCP localmente para desenvolvimento, conecte-se a `,_jsx(_components.code,{children:`127.0.0.1`}),` em vez de `,_jsx(_components.code,{children:`0.0.0.0`}),`. Isso impede que sejam acessíveis por outras máquinas na rede.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Autenticação`}),`: Exija autenticação para todas as conexões ao seu servidor MCP caso não seja destinado a acesso público anônimo.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`b-use-https`,children:`b. Use HTTPS`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Criptografe Dados em Trânsito`}),`: Sempre use HTTPS (HTTP Seguro) para URLs de servidores MCP remotos. Isso criptografa a comunicação entre sua aplicação CrewAI e o servidor MCP, protegendo contra escuta e ataques Man-in-the-Middle (MitM). O `,_jsx(_components.code,{children:`MCPServerAdapter`}),` respeitará o esquema (`,_jsx(_components.code,{children:`http`}),` ou `,_jsx(_components.code,{children:`https`}),`) fornecido na URL.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`c-token-passthrough-anti-padrão`,children:`c. Token Passthrough (Anti-Padrão)`}),`\n`,_jsx(_components.p,{children:`Isso é uma preocupação principalmente para desenvolvedores de servidores MCP, mas entender o conceito ajuda a escolher servidores seguros.`}),`\n`,_jsxs(_components.p,{children:[`“Token passthrough” é quando um servidor MCP aceita um token de acesso do seu agente CrewAI (que pode ser um token para um serviço `,_jsx(_components.em,{children:`diferente`}),`, por exemplo, `,_jsx(_components.code,{children:`ServiceA`}),`) e simplesmente o repassa para outra API ( `,_jsx(_components.code,{children:`ServiceB`}),`) downstream sem validação adequada. Especificamente, `,_jsx(_components.code,{children:`ServiceB`}),` (ou o próprio servidor MCP) só deveria aceitar tokens explicitamente emitidos `,_jsx(_components.em,{children:`para eles`}),` (ou seja, o claim ‘audience’ no token deve corresponder ao servidor/serviço).`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Riscos:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Burlar controles de segurança (como limites de taxa ou permissões granulares) no servidor MCP ou na API downstream.`}),`\n`,_jsx(_components.li,{children:`Quebra trilhas de auditoria e responsabilização.`}),`\n`,_jsx(_components.li,{children:`Permite uso indevido de tokens roubados.`}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Mitigação (Para Desenvolvedores de Servidores MCP):`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Servidores MCP `,_jsx(_components.strong,{children:`NÃO DEVEM`}),` aceitar tokens que não foram explicitamente emitidos para eles. Devem validar o claim de audiência dos tokens.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Implicação para Usuários CrewAI:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Embora isso não seja diretamente controlável pelo usuário, destaca a importância de conectar-se a servidores MCP bem projetados e que sigam as melhores práticas de segurança.`}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`autenticação-e-autorização`,children:`Autenticação e Autorização`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Verifique a Identidade`}),`: Se o servidor MCP fornece ferramentas sensíveis ou acesso a dados privados, ele DEVE implementar mecanismos de autenticação robustos para verificar a identidade do cliente (sua aplicação CrewAI). Isso pode envolver chaves de API, tokens OAuth ou outros métodos padrão.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Princípio do Menor Privilégio`}),`: Certifique-se de que as credenciais usadas pelo `,_jsx(_components.code,{children:`MCPServerAdapter`}),` (se houver) tenham apenas as permissões necessárias para acessar as ferramentas requeridas.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`d-validação-e-saneamento-de-entrada`,children:`d. Validação e Saneamento de Entrada`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Validação de Entrada é Crítica`}),`: Servidores MCP `,_jsx(_components.strong,{children:`devem`}),` validar rigorosamente todas as entradas recebidas de agentes `,_jsx(_components.em,{children:`antes`}),` de processá-las ou passá-las para as ferramentas. Esta é a principal defesa contra diversas vulnerabilidades comuns:`,`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Injection de Comando:`}),` Caso uma ferramenta construa comandos de shell, queries SQL ou outras instruções de linguagens interpretadas a partir da entrada, o servidor deve sanitizar cuidadosamente esta entrada para evitar que comandos maliciosos sejam injetados e executados.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Path Traversal:`}),` Se uma ferramenta acessa arquivos com base em parâmetros de entrada, o servidor deve validar e sanitizar esses caminhos para evitar acesso a arquivos ou diretórios não autorizados (por exemplo, bloqueando sequências `,_jsx(_components.code,{children:`../`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Verificações de Tipo e Faixa de Dados:`}),` Servidores devem garantir que os dados de entrada estejam nos tipos esperados (ex: string, número, booleano) e dentro de faixas aceitáveis ou em formatos definidos (ex: regex para URLs).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Validação de Schema JSON:`}),` Todos os parâmetros das ferramentas devem ser validados estritamente com seus esquemas JSON definidos. Isso ajuda a capturar requisições mal formatadas precocemente.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Atenção do Lado do Cliente`}),`: Embora a validação no servidor seja fundamental, como usuário CrewAI, fique atento aos dados que seus agentes são configurados para enviar a ferramentas MCP, especialmente ao interagir com servidores MCP novos ou menos confiáveis.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`e-limite-de-taxa-e-gerenciamento-de-recursos`,children:`e. Limite de Taxa e Gerenciamento de Recursos`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Previna Abusos`}),`: Servidores MCP devem implementar limite de taxa para prevenir abusos, seja intencional (ataques de negação de serviço) ou não intencional (ex: um agente mal configurado fazendo muitas requisições).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Re-tentativas do Lado do Cliente`}),`: Implemente lógica de repetição sensata em suas tarefas CrewAI se problemas de rede transitórios ou limites de taxa do servidor forem esperados, mas evite re-tentativas agressivas que possam aumentar a carga do servidor.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`4-conselhos-para-implementação-de-servidor-mcp-seguro-para-desenvolvedores`,children:`4. Conselhos para Implementação de Servidor MCP Seguro (Para Desenvolvedores)`}),`\n`,_jsx(_components.p,{children:`Se você está desenvolvendo um servidor MCP ao qual agentes CrewAI possam se conectar, considere estas melhores práticas além dos pontos acima:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Siga Práticas de Código Seguro`}),`: Adote princípios padrão de programação segura para sua linguagem e framework escolhidos (ex: OWASP Top 10).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Princípio do Menor Privilégio`}),`: Certifique-se de que o processo que executa o servidor MCP (especialmente para `,_jsx(_components.code,{children:`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.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Gerenciamento de Dependências`}),`: Mantenha todas as dependências do lado do servidor, incluindo pacotes do sistema operacional, runtimes de linguagem e bibliotecas de terceiros, sempre atualizadas para corrigir vulnerabilidades conhecidas. Use ferramentas para escanear por dependências vulneráveis.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Padrões Seguros por Padrão`}),`: Projete seu servidor e suas ferramentas para serem seguros por padrão. Por exemplo, recursos potencialmente arriscados devem ser desabilitados por padrão ou requerer ativação explícita, com avisos claros.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Controle de Acesso para Ferramentas`}),`: Implemente mecanismos robustos para controlar quais agentes ou usuários autenticados e autorizados podem acessar ferramentas específicas, especialmente as que são poderosas, sensíveis ou incorram em custos.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tratamento Seguro de Erros`}),`: Servidores não devem expor mensagens detalhadas de erro interno, traces de stack ou informações de debug para o cliente, pois estas podem revelar detalhes internos ou potenciais vulnerabilidades. Logue os erros de forma abrangente no lado do servidor para diagnóstico.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Log e Monitoramento Abrangentes`}),`: Implemente um log detalhado de eventos relevantes para segurança (ex: tentativas de autenticação, invocações de ferramenta, erros, mudanças de autorização). Monitore esses logs em busca de atividades suspeitas ou padrões de abuso.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Aderência à Especificação de Autorização MCP`}),`: Caso implemente autenticação e autorização, siga estritamente a `,_jsx(_components.a,{href:`https://modelcontextprotocol.io/specification/draft/basic/authorization`,children:`especificação de autorização MCP`}),` e as `,_jsx(_components.a,{href:`https://datatracker.ietf.org/doc/html/rfc9700`,children:`melhores práticas de segurança OAuth 2.0`}),` relevantes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Auditorias de Segurança Regulares`}),`: Caso seu servidor MCP manipule dados sensíveis, realize operações críticas ou seja exposto publicamente, considere auditorias de segurança periódicas conduzidas por profissionais qualificados.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`5-leituras-adicionais`,children:`5. Leituras Adicionais`}),`\n`,_jsx(_components.p,{children:`Para informações mais detalhadas sobre segurança MCP, consulte a documentação oficial:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.strong,{children:_jsx(_components.a,{href:`https://modelcontextprotocol.io/docs/concepts/transports#security-considerations`,children:`Segurança de Transporte MCP`})})}),`\n`]}),`\n`,_jsx(_components.p,{children:`Ao entender essas considerações de segurança e implementar as melhores práticas, você pode aproveitar com segurança o poder dos servidores MCP em seus projetos CrewAI.\nEstes pontos não esgotam o assunto, mas cobrem as questões de segurança mais comuns e críticas.\nAs ameaças continuarão a evoluir, por isso é importante se manter informado e adaptar suas medidas de segurança de acordo.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Considerações de Segurança MCP","description":"Saiba mais sobre as principais melhores práticas de segurança ao integrar servidores MCP com seus agentes CrewAI.","icon":"lock","mode":"wide","href":"/v1.15.13/pt-BR/mcp/security"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Visão Geral","slug":"visão-geral","depth":2,"children":[{"title":"Riscos","slug":"riscos","depth":3,"children":[]},{"title":"1. Confiando em Servidores MCP","slug":"1-confiando-em-servidores-mcp","depth":3,"children":[]},{"title":"2. Prompt Injection Seguro via Metadados de Ferramentas: O Risco do “Model Control Protocol”","slug":"2-prompt-injection-seguro-via-metadados-de-ferramentas-o-risco-do-“model-control-protocol”","depth":3,"children":[]},{"title":"Segurança do Transporte Stdio","slug":"segurança-do-transporte-stdio","depth":3,"children":[]},{"title":"Ataques de Confused Deputy","slug":"ataques-de-confused-deputy","depth":3,"children":[]},{"title":"Segurança no Transporte Remoto (SSE \u0026 HTTP Transmitível)","slug":"segurança-no-transporte-remoto-sse-\u0026-http-transmitível","depth":3,"children":[]},{"title":"Considerações de Segurança SSE","slug":"considerações-de-segurança-sse","depth":3,"children":[]},{"title":"a. Ataques de DNS Rebinding (Especialmente para SSE)","slug":"a-ataques-de-dns-rebinding-especialmente-para-sse","depth":3,"children":[]},{"title":"b. Use HTTPS","slug":"b-use-https","depth":3,"children":[]},{"title":"c. Token Passthrough (Anti-Padrão)","slug":"c-token-passthrough-anti-padrão","depth":3,"children":[]},{"title":"Autenticação e Autorização","slug":"autenticação-e-autorização","depth":4,"children":[]},{"title":"d. Validação e Saneamento de Entrada","slug":"d-validação-e-saneamento-de-entrada","depth":3,"children":[]},{"title":"e. Limite de Taxa e Gerenciamento de Recursos","slug":"e-limite-de-taxa-e-gerenciamento-de-recursos","depth":3,"children":[]}]},{"title":"4. Conselhos para Implementação de Servidor MCP Seguro (Para Desenvolvedores)","slug":"4-conselhos-para-implementação-de-servidor-mcp-seguro-para-desenvolvedores","depth":2,"children":[]},{"title":"5. Leituras Adicionais","slug":"5-leituras-adicionais","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/crewai/cc0a0a5c2c93f4d8/common-room-tracking.js","/_mintlify/custom/crewai/36c44d75a9111b06/reo-tracking.js"],"subdomain":"crewai","siteName":"CrewAI","title":"Considerações de Segurança MCP - CrewAI","navMaps":{"firstHrefInVersion":{"Edge":{"href":"/edge/pt-BR/mcp/security","matchLevel":1},"v1.15.30":{"href":"/v1.15.30/pt-BR/mcp/security","matchLevel":1},"v1.15.29":{"href":"/v1.15.29/pt-BR/mcp/security","matchLevel":1},"v1.15.28":{"href":"/v1.15.28/pt-BR/mcp/security","matchLevel":1},"v1.15.27":{"href":"/v1.15.27/pt-BR/mcp/security","matchLevel":1},"v1.15.26":{"href":"/v1.15.26/pt-BR/mcp/security","matchLevel":1},"v1.15.25":{"href":"/v1.15.25/pt-BR/mcp/security","matchLevel":1},"v1.15.24":{"href":"/v1.15.24/pt-BR/mcp/security","matchLevel":1},"v1.15.23":{"href":"/v1.15.23/pt-BR/mcp/security","matchLevel":1},"v1.15.22":{"href":"/v1.15.22/pt-BR/mcp/security","matchLevel":1},"v1.15.21":{"href":"/v1.15.21/pt-BR/mcp/security","matchLevel":1},"v1.15.20":{"href":"/v1.15.20/pt-BR/mcp/security","matchLevel":1},"v1.15.19":{"href":"/v1.15.19/pt-BR/mcp/security","matchLevel":1},"v1.15.18":{"href":"/v1.15.18/pt-BR/mcp/security","matchLevel":1},"v1.15.17":{"href":"/v1.15.17/pt-BR/mcp/security","matchLevel":1},"v1.15.16":{"href":"/v1.15.16/pt-BR/mcp/security","matchLevel":1},"v1.15.15":{"href":"/v1.15.15/pt-BR/mcp/security","matchLevel":1},"v1.15.14":{"href":"/v1.15.14/pt-BR/mcp/security","matchLevel":1},"v1.15.13":{"href":"/v1.15.13/pt-BR/mcp/security","matchLevel":0},"v1.15.12":{"href":"/v1.15.12/pt-BR/mcp/security","matchLevel":1},"v1.15.11":{"href":"/v1.15.11/pt-BR/mcp/security","matchLevel":1},"v1.15.10":{"href":"/v1.15.10/pt-BR/mcp/security","matchLevel":1},"v1.15.9":{"href":"/v1.15.9/pt-BR/mcp/security","matchLevel":1},"v1.15.8":{"href":"/v1.15.8/pt-BR/mcp/security","matchLevel":1},"v1.15.7":{"href":"/v1.15.7/pt-BR/mcp/security","matchLevel":1},"v1.15.6":{"href":"/v1.15.6/pt-BR/mcp/security","matchLevel":1},"v1.15.5":{"href":"/v1.15.5/pt-BR/mcp/security","matchLevel":1},"v1.15.4":{"href":"/v1.15.4/pt-BR/mcp/security","matchLevel":1},"v1.15.3":{"href":"/v1.15.3/pt-BR/mcp/security","matchLevel":1},"v1.15.2":{"href":"/v1.15.2/pt-BR/mcp/security","matchLevel":1},"v1.15.1":{"href":"/v1.15.1/pt-BR/mcp/security","matchLevel":1},"v1.15.0":{"href":"/v1.15.0/pt-BR/mcp/security","matchLevel":1},"v1.14.7":{"href":"/v1.14.7/pt-BR/mcp/security","matchLevel":1},"v1.14.6":{"href":"/v1.14.6/pt-BR/mcp/security","matchLevel":1},"v1.14.5":{"href":"/v1.14.5/pt-BR/mcp/security","matchLevel":1},"v1.14.4":{"href":"/v1.14.4/pt-BR/mcp/security","matchLevel":1},"v1.14.3":{"href":"/v1.14.3/pt-BR/mcp/security","matchLevel":1},"v1.14.2":{"href":"/v1.14.2/pt-BR/mcp/security","matchLevel":1},"v1.14.1":{"href":"/v1.14.1/pt-BR/mcp/security","matchLevel":1},"v1.14.0":{"href":"/v1.14.0/pt-BR/mcp/security","matchLevel":1},"v1.13.0":{"href":"/v1.13.0/pt-BR/mcp/security","matchLevel":1},"v1.12.2":{"href":"/v1.12.2/pt-BR/mcp/security","matchLevel":1},"v1.12.1":{"href":"/v1.12.1/pt-BR/mcp/security","matchLevel":1},"v1.12.0":{"href":"/v1.12.0/pt-BR/mcp/security","matchLevel":1},"v1.11.1":{"href":"/v1.11.1/pt-BR/mcp/security","matchLevel":1},"v1.11.0":{"href":"/v1.11.0/pt-BR/mcp/security","matchLevel":1},"v1.10.1":{"href":"/v1.10.1/pt-BR/mcp/security","matchLevel":1},"v1.10.0":{"href":"/v1.10.0/pt-BR/mcp/security","matchLevel":1}},"firstHrefInLanguage":{"en":{"href":"/v1.15.13/en/mcp/security","matchLevel":1},"pt-BR":{"href":"/v1.15.13/pt-BR/mcp/security","matchLevel":0},"ko":{"href":"/v1.15.13/ko/mcp/security","matchLevel":1},"ar":{"href":"/v1.15.13/ar/mcp/security","matchLevel":1}}},"lastModified":"2026-08-07T21:26:36.451Z","originalFileLocation":"v1.15.13/pt-BR/mcp/security.mdx","locale":"pt-BR"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Saiba mais sobre as principais melhores práticas de segurança ao integrar servidores MCP com seus agentes CrewAI.\">\u003cmeta data-mint-head name=\"keywords\" content=\"AI agents, multi-agent systems, CrewAI, artificial intelligence, automation, Python framework, agent collaboration, AI workflows\">\u003cmeta data-mint-head name=\"application-name\" content=\"CrewAI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Considerações de Segurança MCP - CrewAI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Saiba mais sobre as principais melhores práticas de segurança ao integrar servidores MCP com seus agentes CrewAI.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CrewAI Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.crewai.com/images/crew_only_logo.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Considerações de Segurança MCP - CrewAI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Saiba mais sobre as principais melhores práticas de segurança ao integrar servidores MCP com seus agentes CrewAI.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.crewai.com/images/crew_only_logo.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/crewai/4u_yrBmnBvL-de5g/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CrewAI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#EB6658\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v1.15.13/pt-BR/mcp/security.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.crewai.com/v1.15.13/en/mcp/security\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ko\" href=\"https://docs.crewai.com/v1.15.13/ko/mcp/security\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ar\" href=\"https://docs.crewai.com/v1.15.13/ar/mcp/security\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.crewai.com/v1.15.13/en/mcp/security\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.crewai.com/#organization\",\"name\":\"CrewAI\",\"url\":\"https://docs.crewai.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/crewai/5SZbe87tsCWZY09V/images/crew_only_logo.png?fit=max\u0026auto=format\u0026n=5SZbe87tsCWZY09V\u0026q=85\u0026s=439ca5dc63a1768cad7196005ff5636f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.crewai.com#website\",\"name\":\"CrewAI\",\"url\":\"https://docs.crewai.com\",\"publisher\":{\"@id\":\"https://docs.crewai.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security#webpage\",\"url\":\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security\",\"name\":\"Considerações de Segurança MCP\",\"description\":\"Saiba mais sobre as principais melhores práticas de segurança ao integrar servidores MCP com seus agentes CrewAI.\",\"dateModified\":\"2026-08-07T21:26:36.451Z\",\"isPartOf\":{\"@id\":\"https://docs.crewai.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Integração MCP\",\"item\":\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Considerações de Segurança MCP\",\"item\":\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security#article\",\"headline\":\"Considerações de Segurança MCP\",\"name\":\"Considerações de Segurança MCP\",\"description\":\"Saiba mais sobre as principais melhores práticas de segurança ao integrar servidores MCP com seus agentes CrewAI.\",\"url\":\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security\",\"mainEntityOfPage\":{\"@id\":\"https://docs.crewai.com/v1.15.13/pt-BR/mcp/security#webpage\"},\"image\":\"https://docs.crewai.com/images/crew_only_logo.png\",\"dateModified\":\"2026-08-07T21:26:36.451Z\",\"publisher\":{\"@id\":\"https://docs.crewai.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.crewai.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CrewAI\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"CrewAI","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/v1.15.13/en/mcp/security"}]},{"language":"pt-BR","versions":[{"version":"Edge","tag":"Edge","pages":[{"title":"Edge","href":"/edge/pt-BR/mcp/security"}]},{"version":"v1.15.30","default":true,"tag":"Latest","pages":[{"title":"v1.15.30","href":"/v1.15.30/pt-BR/mcp/security"}]},{"version":"v1.15.29","pages":[{"title":"v1.15.29","href":"/v1.15.29/pt-BR/mcp/security"}]},{"version":"v1.15.28","pages":[{"title":"v1.15.28","href":"/v1.15.28/pt-BR/mcp/security"}]},{"version":"v1.15.27","pages":[{"title":"v1.15.27","href":"/v1.15.27/pt-BR/mcp/security"}]},{"version":"v1.15.26","pages":[{"title":"v1.15.26","href":"/v1.15.26/pt-BR/mcp/security"}]},{"version":"v1.15.25","pages":[{"title":"v1.15.25","href":"/v1.15.25/pt-BR/mcp/security"}]},{"version":"v1.15.24","pages":[{"title":"v1.15.24","href":"/v1.15.24/pt-BR/mcp/security"}]},{"version":"v1.15.23","pages":[{"title":"v1.15.23","href":"/v1.15.23/pt-BR/mcp/security"}]},{"version":"v1.15.22","pages":[{"title":"v1.15.22","href":"/v1.15.22/pt-BR/mcp/security"}]},{"version":"v1.15.21","pages":[{"title":"v1.15.21","href":"/v1.15.21/pt-BR/mcp/security"}]},{"version":"v1.15.20","pages":[{"title":"v1.15.20","href":"/v1.15.20/pt-BR/mcp/security"}]},{"version":"v1.15.19","pages":[{"title":"v1.15.19","href":"/v1.15.19/pt-BR/mcp/security"}]},{"version":"v1.15.18","pages":[{"title":"v1.15.18","href":"/v1.15.18/pt-BR/mcp/security"}]},{"version":"v1.15.17","pages":[{"title":"v1.15.17","href":"/v1.15.17/pt-BR/mcp/security"}]},{"version":"v1.15.16","pages":[{"title":"v1.15.16","href":"/v1.15.16/pt-BR/mcp/security"}]},{"version":"v1.15.15","pages":[{"title":"v1.15.15","href":"/v1.15.15/pt-BR/mcp/security"}]},{"version":"v1.15.14","pages":[{"title":"v1.15.14","href":"/v1.15.14/pt-BR/mcp/security"}]},{"version":"v1.15.13","tabs":[{"tab":"Início","icon":"house","pages":[{"title":"Início","href":"/v1.15.13/pt-BR"}]},{"tab":"Documentação","icon":"book-open","groups":[{"group":"Começando","pages":[{"title":"Introdução","icon":"handshake","mode":"wide","href":"/v1.15.13/pt-BR/introduction"},{"title":"Construa com IA","icon":"robot","mode":"wide","href":"/v1.15.13/pt-BR/guides/coding-tools/build-with-ai"},{"title":"Skills","icon":"wand-magic-sparkles","mode":"wide","href":"/v1.15.13/pt-BR/skills"},{"title":"Instalação","icon":"wrench","mode":"wide","href":"/v1.15.13/pt-BR/installation"},{"title":"Guia Rápido","icon":"rocket","mode":"wide","href":"/v1.15.13/pt-BR/quickstart"}]},{"group":"Guias","pages":[{"group":"Estratégia","icon":"compass","pages":[{"title":"Avaliando Casos de Uso para CrewAI","icon":"scale-balanced","mode":"wide","href":"/v1.15.13/pt-BR/guides/concepts/evaluating-use-cases"}]},{"group":"Agentes","icon":"user","pages":[{"title":"Criando Agentes Eficazes","icon":"robot","mode":"wide","href":"/v1.15.13/pt-BR/guides/agents/crafting-effective-agents"}]},{"group":"Crews","icon":"users","pages":[{"title":"Crie sua primeira Crew","icon":"users-gear","mode":"wide","href":"/v1.15.13/pt-BR/guides/crews/first-crew"}]},{"group":"Flows","icon":"code-branch","pages":[{"title":"Construa Seu Primeiro Flow","icon":"diagram-project","mode":"wide","href":"/v1.15.13/pt-BR/guides/flows/first-flow"},{"title":"Dominando o Gerenciamento de Estado em Flows","icon":"diagram-project","mode":"wide","href":"/v1.15.13/pt-BR/guides/flows/mastering-flow-state"},{"title":"Flows Conversacionais","icon":"comments","mode":"wide","href":"/v1.15.13/pt-BR/guides/flows/conversational-flows"},{"title":"Migrando de inputs.id para restore_from_state_id","icon":"arrow-right-arrow-left","href":"/v1.15.13/pt-BR/guides/flows/inputs-id-deprecation"}]},{"group":"Ferramentas","icon":"wrench","pages":[{"title":"Publicar Ferramentas Personalizadas","icon":"box-open","mode":"wide","href":"/v1.15.13/pt-BR/guides/tools/publish-custom-tools"}]},{"group":"Ferramentas de Codificação","icon":"terminal","pages":[{"title":"Ferramentas de Codificação","icon":"terminal","mode":"wide","href":"/v1.15.13/pt-BR/guides/coding-tools/agents-md"}]},{"group":"Avançado","icon":"gear","pages":[{"title":"Personalizando Prompts","icon":"message-pen","mode":"wide","href":"/v1.15.13/pt-BR/guides/advanced/customizing-prompts"},{"title":"Impressão digital","icon":"fingerprint","mode":"wide","href":"/v1.15.13/pt-BR/guides/advanced/fingerprinting"}]},{"group":"Migração","icon":"shuffle","pages":[{"title":"Migrando do LangGraph para o CrewAI: um guia prático para engenheiros","icon":"switch","mode":"wide","href":"/v1.15.13/pt-BR/guides/migration/migrating-from-langgraph"}]}]},{"group":"Conceitos-Chave","pages":[{"title":"Agentes","icon":"robot","mode":"wide","href":"/v1.15.13/pt-BR/concepts/agents"},{"title":"Capacidades do Agente","icon":"puzzle-piece","mode":"wide","href":"/v1.15.13/pt-BR/concepts/agent-capabilities"},{"title":"Tarefas","icon":"list-check","mode":"wide","href":"/v1.15.13/pt-BR/concepts/tasks"},{"title":"Crews","icon":"people-group","mode":"wide","href":"/v1.15.13/pt-BR/concepts/crews"},{"title":"Flows","icon":"arrow-progress","mode":"wide","href":"/v1.15.13/pt-BR/concepts/flows"},{"title":"Arquitetura de Produção","icon":"server","mode":"wide","href":"/v1.15.13/pt-BR/concepts/production-architecture"},{"title":"Knowledge","icon":"book","mode":"wide","href":"/v1.15.13/pt-BR/concepts/knowledge"},{"title":"Skills","icon":"bolt","mode":"wide","href":"/v1.15.13/pt-BR/concepts/skills"},{"title":"LLMs","icon":"microchip-ai","mode":"wide","href":"/v1.15.13/pt-BR/concepts/llms"},{"title":"Arquivos","icon":"file-image","href":"/v1.15.13/pt-BR/concepts/files"},{"title":"Processos","icon":"bars-staggered","mode":"wide","href":"/v1.15.13/pt-BR/concepts/processes"},{"title":"Colaboração","icon":"screen-users","mode":"wide","href":"/v1.15.13/pt-BR/concepts/collaboration"},{"title":"Treinamento","icon":"dumbbell","mode":"wide","href":"/v1.15.13/pt-BR/concepts/training"},{"title":"Memória","icon":"database","mode":"wide","href":"/v1.15.13/pt-BR/concepts/memory"},{"title":"Reasoning","icon":"brain","mode":"wide","href":"/v1.15.13/pt-BR/concepts/reasoning"},{"title":"Planejamento","icon":"ruler-combined","mode":"wide","href":"/v1.15.13/pt-BR/concepts/planning"},{"title":"Testes","icon":"vial","mode":"wide","href":"/v1.15.13/pt-BR/concepts/testing"},{"title":"CLI","icon":"terminal","mode":"wide","href":"/v1.15.13/pt-BR/concepts/cli"},{"title":"Ferramentas","icon":"screwdriver-wrench","mode":"wide","href":"/v1.15.13/pt-BR/concepts/tools"},{"title":"Listeners de Evento","icon":"spinner","mode":"wide","href":"/v1.15.13/pt-BR/concepts/event-listener"},{"title":"Checkpointing","icon":"floppy-disk","mode":"wide","href":"/v1.15.13/pt-BR/concepts/checkpointing"}]},{"group":"Integração MCP","pages":[{"title":"Servidores MCP como Ferramentas no CrewAI","icon":"plug","mode":"wide","href":"/v1.15.13/pt-BR/mcp/overview"},{"title":"Integração DSL MCP","icon":"code","mode":"wide","href":"/v1.15.13/pt-BR/mcp/dsl-integration"},{"title":"Transporte Stdio","icon":"server","mode":"wide","href":"/v1.15.13/pt-BR/mcp/stdio"},{"title":"Transporte SSE","icon":"wifi","mode":"wide","href":"/v1.15.13/pt-BR/mcp/sse"},{"title":"Transporte HTTP Streamable","icon":"globe","mode":"wide","href":"/v1.15.13/pt-BR/mcp/streamable-http"},{"title":"Conectando a Múltiplos Servidores MCP","description":"Saiba como usar o MCPServerAdapter no CrewAI para conectar-se simultaneamente a múltiplos servidores MCP e agregar suas ferramentas.","icon":"layer-group","mode":"wide","href":"/v1.15.13/pt-BR/mcp/multiple-servers"},{"title":"Considerações de Segurança MCP","icon":"lock","mode":"wide","href":"/v1.15.13/pt-BR/mcp/security"}]},{"group":"Ferramentas","pages":[{"title":"Visão Geral das Ferramentas","description":"Descubra a vasta biblioteca do CrewAI com mais de 40 ferramentas para potencializar seus agentes de IA","icon":"toolbox","mode":"wide","href":"/v1.15.13/pt-BR/tools/overview"},{"group":"Arquivo \u0026 Documento","icon":"folder-open","pages":[{"title":"Visão Geral","icon":"face-smile","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/overview"},{"title":"Leitura de Arquivo","icon":"folders","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/filereadtool"},{"title":"Escrita de Arquivo","icon":"file-pen","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/filewritetool"},{"title":"Busca RAG em PDF","icon":"file-pdf","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/pdfsearchtool"},{"title":"Pesquisa RAG em DOCX","icon":"file-word","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/docxsearchtool"},{"title":"Pesquisa MDX RAG","icon":"markdown","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/mdxsearchtool"},{"title":"Busca RAG em XML","icon":"file-xml","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/xmlsearchtool"},{"title":"Pesquisa TXT RAG","icon":"file-lines","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/txtsearchtool"},{"title":"Busca JSON RAG","icon":"file-code","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/jsonsearchtool"},{"title":"Busca RAG em CSV","icon":"file-csv","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/csvsearchtool"},{"title":"Busca RAG em Diretório","icon":"address-book","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/directorysearchtool"},{"title":"Leitura de Diretório","icon":"folder-tree","mode":"wide","href":"/v1.15.13/pt-BR/tools/file-document/directoryreadtool"}]},{"group":"Web Scraping \u0026 Navegação","icon":"globe","pages":[{"title":"Visão Geral","icon":"face-smile","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/overview"},{"title":"Raspar Site","icon":"magnifying-glass-location","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/scrapewebsitetool"},{"title":"Ferramenta de Extração de Elementos de Website","icon":"code","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/scrapeelementfromwebsitetool"},{"title":"Ferramenta de Raspagem de Sites Scrapfly","icon":"spider","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/scrapflyscrapetool"},{"title":"Selenium Scraper","icon":"clipboard-user","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/seleniumscrapingtool"},{"title":"Ferramenta de Extração Scrapegraph","icon":"chart-area","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/scrapegraphscrapetool"},{"title":"Spider Scraper","icon":"spider-web","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/spidertool"},{"title":"Carregador Web Browserbase","icon":"browser","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/browserbaseloadtool"},{"title":"Hyperbrowser Load Tool","icon":"globe","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/hyperbrowserloadtool"},{"title":"Ferramenta Stagehand","icon":"hand","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/stagehandtool"},{"title":"Firecrawl Crawl Website","icon":"fire-flame","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/firecrawlcrawlwebsitetool"},{"title":"Firecrawl Scrape Website","icon":"fire-flame","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/firecrawlscrapewebsitetool"},{"title":"Oxylabs Scrapers","icon":"globe","mode":"wide","href":"/v1.15.13/pt-BR/tools/web-scraping/oxylabsscraperstool"}]},{"group":"Pesquisa","icon":"magnifying-glass","pages":[{"title":"Visão Geral","icon":"face-smile","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/overview"},{"title":"Pesquisa Serper Google","icon":"google","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/serperdevtool"},{"title":"Brave Search","icon":"searchengin","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/bravesearchtool"},{"title":"Carregador Web EXA Search","icon":"globe-pointer","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/exasearchtool"},{"title":"Linkup Search Tool","icon":"link","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/linkupsearchtool"},{"title":"Github Search","icon":"github","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/githubsearchtool"},{"title":"Pesquisa RAG em Sites","icon":"globe-stand","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/websitesearchtool"},{"title":"Pesquisa com RAG em Documentação de Código","icon":"code","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/codedocssearchtool"},{"title":"Busca RAG em Canal do YouTube","icon":"youtube","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/youtubechannelsearchtool"},{"title":"Pesquisa RAG em Vídeos do YouTube","icon":"youtube","mode":"wide","href":"/v1.15.13/pt-BR/tools/search-research/youtubevideosearchtool"}]},{"group":"Dados","icon":"database","pages":[{"title":"Visão Geral","icon":"face-smile","mode":"wide","href":"/v1.15.13/pt-BR/tools/database-data/overview"},{"title":"Busca RAG no MySQL","icon":"database","mode":"wide","href":"/v1.15.13/pt-BR/tools/database-data/mysqltool"},{"title":"PG RAG Search","icon":"elephant","mode":"wide","href":"/v1.15.13/pt-BR/tools/database-data/pgsearchtool"},{"title":"Snowflake Search Tool","icon":"snowflake","mode":"wide","href":"/v1.15.13/pt-BR/tools/database-data/snowflakesearchtool"},{"title":"NL2SQL Tool","icon":"language","mode":"wide","href":"/v1.15.13/pt-BR/tools/database-data/nl2sqltool"},{"title":"Qdrant Vector Search Tool","icon":"vector-square","mode":"wide","href":"/v1.15.13/pt-BR/tools/database-data/qdrantvectorsearchtool"},{"title":"Busca Vetorial Weaviate","icon":"network-wired","mode":"wide","href":"/v1.15.13/pt-BR/tools/database-data/weaviatevectorsearchtool"}]},{"group":"IA \u0026 Machine Learning","icon":"brain","pages":[{"title":"Visão Geral","icon":"face-smile","mode":"wide","href":"/v1.15.13/pt-BR/tools/ai-ml/overview"},{"title":"Ferramenta DALL-E","icon":"image","mode":"wide","href":"/v1.15.13/pt-BR/tools/ai-ml/dalletool"},{"title":"Vision Tool","icon":"eye","mode":"wide","href":"/v1.15.13/pt-BR/tools/ai-ml/visiontool"},{"title":"AI Mind Tool","icon":"brain","mode":"wide","href":"/v1.15.13/pt-BR/tools/ai-ml/aimindtool"},{"title":"Ferramenta LlamaIndex","icon":"address-book","mode":"wide","href":"/v1.15.13/pt-BR/tools/ai-ml/llamaindextool"},{"title":"Ferramenta LangChain","icon":"link","mode":"wide","href":"/v1.15.13/pt-BR/tools/ai-ml/langchaintool"},{"title":"Ferramenta RAG","icon":"vector-square","mode":"wide","href":"/v1.15.13/pt-BR/tools/ai-ml/ragtool"},{"title":"Interpretador de Código","icon":"code-simple","mode":"wide","href":"/v1.15.13/pt-BR/tools/ai-ml/codeinterpretertool"},{"title":"Daytona Sandbox Tools","icon":"box","mode":"wide","href":"/v1.15.13/pt-BR/tools/ai-ml/daytona"}]},{"group":"Cloud \u0026 Armazenamento","icon":"cloud","pages":[{"title":"Visão Geral","icon":"face-smile","mode":"wide","href":"/v1.15.13/pt-BR/tools/cloud-storage/overview"},{"title":"S3 Reader Tool","icon":"aws","mode":"wide","href":"/v1.15.13/pt-BR/tools/cloud-storage/s3readertool"},{"title":"Ferramenta S3 Writer","icon":"aws","mode":"wide","href":"/v1.15.13/pt-BR/tools/cloud-storage/s3writertool"},{"title":"Bedrock Knowledge Base Retriever","icon":"aws","mode":"wide","href":"/v1.15.13/pt-BR/tools/cloud-storage/bedrockkbretriever"}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Visão Geral","icon":"plug","mode":"wide","href":"/v1.15.13/pt-BR/tools/integration/overview"},{"title":"Bedrock Invoke Agent Tool","icon":"aws","mode":"wide","href":"/v1.15.13/pt-BR/tools/integration/bedrockinvokeagenttool"},{"title":"CrewAI Run Automation Tool","icon":"robot","href":"/v1.15.13/pt-BR/tools/integration/crewaiautomationtool"}]},{"group":"Automação","icon":"bolt","pages":[{"title":"Visão Geral","icon":"face-smile","mode":"wide","href":"/v1.15.13/pt-BR/tools/automation/overview"},{"title":"Apify Actors","icon":"); -webkit-mask-image: url('https://upload.wikimedia.org/wikipedia/commons/a/ae/Apify.svg');/*","mode":"wide","href":"/v1.15.13/pt-BR/tools/automation/apifyactorstool"},{"title":"Ferramenta Composio","icon":"gear-code","mode":"wide","href":"/v1.15.13/pt-BR/tools/automation/composiotool"},{"title":"MultiOn Tool","icon":"globe","mode":"wide","href":"/v1.15.13/pt-BR/tools/automation/multiontool"}]}]},{"group":"Observabilidade","pages":[{"title":"CrewAI Tracing","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.15.13/pt-BR/observability/tracing"},{"title":"Visão Geral","icon":"face-smile","mode":"wide","href":"/v1.15.13/pt-BR/observability/overview"},{"title":"Arize Phoenix","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.15.13/pt-BR/observability/arize-phoenix"},{"title":"Braintrust","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.15.13/pt-BR/observability/braintrust"},{"title":"Integração Datadog","icon":"dog","mode":"wide","href":"/v1.15.13/pt-BR/observability/datadog"},{"title":"Galileo Galileu","icon":"telescope","mode":"wide","href":"/v1.15.13/pt-BR/observability/galileo"},{"title":"Integração LangDB","icon":"database","mode":"wide","href":"/v1.15.13/pt-BR/observability/langdb"},{"title":"Integração Langfuse","icon":"vials","mode":"wide","href":"/v1.15.13/pt-BR/observability/langfuse"},{"title":"Integração com Langtrace","icon":"chart-line","mode":"wide","href":"/v1.15.13/pt-BR/observability/langtrace"},{"title":"Integração Maxim","icon":"bars-staggered","mode":"wide","href":"/v1.15.13/pt-BR/observability/maxim"},{"title":"Integração com MLflow","icon":"bars-staggered","mode":"wide","href":"/v1.15.13/pt-BR/observability/mlflow"},{"title":"Integração OpenLIT","icon":"magnifying-glass-chart","mode":"wide","href":"/v1.15.13/pt-BR/observability/openlit"},{"title":"Integração Opik","icon":"meteor","mode":"wide","href":"/v1.15.13/pt-BR/observability/opik"},{"title":"Avaliação Patronus AI","icon":"shield-check","mode":"wide","href":"/v1.15.13/pt-BR/observability/patronus-evaluation"},{"title":"Integração com Portkey","icon":"key","mode":"wide","href":"/v1.15.13/pt-BR/observability/portkey"},{"title":"Integração com Weave","icon":"radar","mode":"wide","href":"/v1.15.13/pt-BR/observability/weave"},{"title":"Integração com a TrueFoundry","icon":"chart-line","mode":"wide","href":"/v1.15.13/pt-BR/observability/truefoundry"}]},{"group":"Aprenda","pages":[{"title":"Visão Geral","icon":"face-smile","mode":"wide","href":"/v1.15.13/pt-BR/learn/overview"},{"title":"Guia Estratégico de Seleção de LLMs","icon":"brain-circuit","mode":"wide","href":"/v1.15.13/pt-BR/learn/llm-selection-guide"},{"title":"Tarefas Condicionais","icon":"diagram-subtask","mode":"wide","href":"/v1.15.13/pt-BR/learn/conditional-tasks"},{"title":"Agentes de Codificação","icon":"rectangle-code","mode":"wide","href":"/v1.15.13/pt-BR/learn/coding-agents"},{"title":"Criar Ferramentas Personalizadas","icon":"hammer","mode":"wide","href":"/v1.15.13/pt-BR/learn/create-custom-tools"},{"title":"Implementação de LLM Personalizada","icon":"code","mode":"wide","href":"/v1.15.13/pt-BR/learn/custom-llm"},{"title":"Agente Gerente Personalizado","icon":"user-shield","mode":"wide","href":"/v1.15.13/pt-BR/learn/custom-manager-agent"},{"title":"Personalize Agentes","icon":"user-pen","mode":"wide","href":"/v1.15.13/pt-BR/learn/customizing-agents"},{"title":"Geração de Imagens com DALL-E","icon":"image","mode":"wide","href":"/v1.15.13/pt-BR/learn/dalle-image-generation"},{"title":"Forçar a Saída da Ferramenta como Resultado","icon":"wrench-simple","mode":"wide","href":"/v1.15.13/pt-BR/learn/force-tool-output-as-result"},{"title":"Processo Hierárquico","icon":"sitemap","mode":"wide","href":"/v1.15.13/pt-BR/learn/hierarchical-process"},{"title":"Input Humano na Execução","icon":"user-plus","mode":"wide","href":"/v1.15.13/pt-BR/learn/human-input-on-execution"},{"title":"Workflows Human-in-the-Loop (HITL)","icon":"user-check","mode":"wide","href":"/v1.15.13/pt-BR/learn/human-in-the-loop"},{"title":"Feedback Humano em Flows","icon":"user-check","mode":"wide","href":"/v1.15.13/pt-BR/learn/human-feedback-in-flows"},{"title":"Inicie uma Crew de Forma Assíncrona","icon":"rocket-launch","mode":"wide","href":"/v1.15.13/pt-BR/learn/kickoff-async"},{"title":"Kickoff Crew para Cada","icon":"at","mode":"wide","href":"/v1.15.13/pt-BR/learn/kickoff-for-each"},{"title":"Contrato de Streaming do Runtime","icon":"tower-broadcast","mode":"wide","href":"/v1.15.13/pt-BR/learn/streaming-runtime-contract"},{"title":"Conecte-se a qualquer LLM","icon":"brain-circuit","mode":"wide","href":"/v1.15.13/pt-BR/learn/llm-connections"},{"title":"Usando Agentes Multimodais","icon":"video","mode":"wide","href":"/v1.15.13/pt-BR/learn/multimodal-agents"},{"title":"Reexecutar Tarefas a partir do Último Crew Kickoff","icon":"arrow-right","mode":"wide","href":"/v1.15.13/pt-BR/learn/replay-tasks-from-latest-crew-kickoff"},{"title":"Processos Sequenciais","icon":"forward","mode":"wide","href":"/v1.15.13/pt-BR/learn/sequential-process"},{"title":"Usando Anotações no crew.py","icon":"at","mode":"wide","href":"/v1.15.13/pt-BR/learn/using-annotations"},{"title":"Visão Geral dos Hooks de Execução","mode":"wide","href":"/v1.15.13/pt-BR/learn/execution-hooks"},{"title":"Hooks de Chamada LLM","mode":"wide","href":"/v1.15.13/pt-BR/learn/llm-hooks"},{"title":"Hooks de Chamada de Ferramenta","mode":"wide","href":"/v1.15.13/pt-BR/learn/tool-hooks"}]},{"group":"Telemetria","pages":[{"title":"Telemetria","icon":"signal-stream","mode":"wide","href":"/v1.15.13/pt-BR/telemetry"}]}]},{"tab":"AMP","icon":"briefcase","href":"https://docs-platform.crewai.com/platform/pt-BR/introduction"},{"tab":"Referência da API","icon":"magnifying-glass","pages":[{"title":"Referência da API","href":"/v1.15.13/pt-BR/api-reference/introduction"}]},{"tab":"Exemplos","icon":"code","pages":[{"title":"Exemplos","href":"/v1.15.13/pt-BR/examples/example"}]},{"tab":"Notas de Versão","icon":"clock","pages":[{"title":"Notas de Versão","href":"/v1.15.13/pt-BR/changelog"}]}]},{"version":"v1.15.12","pages":[{"title":"v1.15.12","href":"/v1.15.12/pt-BR/mcp/security"}]},{"version":"v1.15.11","pages":[{"title":"v1.15.11","href":"/v1.15.11/pt-BR/mcp/security"}]},{"version":"v1.15.10","pages":[{"title":"v1.15.10","href":"/v1.15.10/pt-BR/mcp/security"}]},{"version":"v1.15.9","pages":[{"title":"v1.15.9","href":"/v1.15.9/pt-BR/mcp/security"}]},{"version":"v1.15.8","pages":[{"title":"v1.15.8","href":"/v1.15.8/pt-BR/mcp/security"}]},{"version":"v1.15.7","pages":[{"title":"v1.15.7","href":"/v1.15.7/pt-BR/mcp/security"}]},{"version":"v1.15.6","pages":[{"title":"v1.15.6","href":"/v1.15.6/pt-BR/mcp/security"}]},{"version":"v1.15.5","pages":[{"title":"v1.15.5","href":"/v1.15.5/pt-BR/mcp/security"}]},{"version":"v1.15.4","pages":[{"title":"v1.15.4","href":"/v1.15.4/pt-BR/mcp/security"}]},{"version":"v1.15.3","pages":[{"title":"v1.15.3","href":"/v1.15.3/pt-BR/mcp/security"}]},{"version":"v1.15.2","pages":[{"title":"v1.15.2","href":"/v1.15.2/pt-BR/mcp/security"}]},{"version":"v1.15.1","pages":[{"title":"v1.15.1","href":"/v1.15.1/pt-BR/mcp/security"}]},{"version":"v1.15.0","pages":[{"title":"v1.15.0","href":"/v1.15.0/pt-BR/mcp/security"}]},{"version":"v1.14.7","pages":[{"title":"v1.14.7","href":"/v1.14.7/pt-BR/mcp/security"}]},{"version":"v1.14.6","pages":[{"title":"v1.14.6","href":"/v1.14.6/pt-BR/mcp/security"}]},{"version":"v1.14.5","pages":[{"title":"v1.14.5","href":"/v1.14.5/pt-BR/mcp/security"}]},{"version":"v1.14.4","pages":[{"title":"v1.14.4","href":"/v1.14.4/pt-BR/mcp/security"}]},{"version":"v1.14.3","pages":[{"title":"v1.14.3","href":"/v1.14.3/pt-BR/mcp/security"}]},{"version":"v1.14.2","pages":[{"title":"v1.14.2","href":"/v1.14.2/pt-BR/mcp/security"}]},{"version":"v1.14.1","pages":[{"title":"v1.14.1","href":"/v1.14.1/pt-BR/mcp/security"}]},{"version":"v1.14.0","pages":[{"title":"v1.14.0","href":"/v1.14.0/pt-BR/mcp/security"}]},{"version":"v1.13.0","pages":[{"title":"v1.13.0","href":"/v1.13.0/pt-BR/mcp/security"}]},{"version":"v1.12.2","pages":[{"title":"v1.12.2","href":"/v1.12.2/pt-BR/mcp/security"}]},{"version":"v1.12.1","pages":[{"title":"v1.12.1","href":"/v1.12.1/pt-BR/mcp/security"}]},{"version":"v1.12.0","pages":[{"title":"v1.12.0","href":"/v1.12.0/pt-BR/mcp/security"}]},{"version":"v1.11.1","pages":[{"title":"v1.11.1","href":"/v1.11.1/pt-BR/mcp/security"}]},{"version":"v1.11.0","pages":[{"title":"v1.11.0","href":"/v1.11.0/pt-BR/mcp/security"}]},{"version":"v1.10.1","pages":[{"title":"v1.10.1","href":"/v1.10.1/pt-BR/mcp/security"}]},{"version":"v1.10.0","pages":[{"title":"v1.10.0","href":"/v1.10.0/pt-BR/mcp/security"}]}],"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://crewai.com"},{"anchor":"Fórum","icon":"discourse","href":"https://community.crewai.com"},{"anchor":"Blog","icon":"newspaper","href":"https://blog.crewai.com"},{"anchor":"CrewGPT","icon":"robot","href":"https://chatgpt.com/g/g-qqTuUWsBY-crewai-assistant"}]}},{"language":"ko","pages":[{"title":"ko","href":"/v1.15.13/ko/mcp/security"}]},{"language":"ar","pages":[{"title":"ar","href":"/v1.15.13/ar/mcp/security"}]}]},"title":"Considerações de Segurança MCP - CrewAI","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":[],"chunks":[]}