Agentes de IA precisam de limites, não de chaves mestras
Dar acesso de um agente de IA ao seu aplicativo via MCP é arriscado. Você está entregando um chaveiro e esperando que eles abram apenas certas portas. Essa confiança é um risco de segurança.
Ao construir ferramentas MCP para um aplicativo Laravel multi-tenant, você deve resolver um problema: como permitir que um agente controle o aplicativo sem acessar os dados de outra pessoa.
Cada ferramenta MCP atua como um endpoint. Um agente chama uma ferramenta e seu servidor executa o código. Em uma configuração multi-tenant, cada ferramenta deve responder a duas perguntas:
- Você tem permissão para fazer isso?
- Você tem permissão para fazer isso aqui?
Se você ignorar isso, criará uma brecha de segurança.
Requisições web usam sessões para lidar com multi-tenancy. Ferramentas MCP usam tokens. Não há sessão nem middleware para definir o contexto do tenant atual. Se você depender de escopos globais que buscam uma "org atual" em uma sessão, eles não encontrarão nada. Uma consulta que deveria ser restrita pode retornar todas as linhas do seu banco de dados.
Eu uso estas quatro regras para me manter seguro:
- Filtragem explícita: Nunca dependa de escopo ambiente sob autenticação por token. Use um único trait para filtrar por organização todas as vezes.
- Use UUIDs: Nunca use IDs de auto-incremento. Use identificadores impossíveis de adivinhar para que os agentes não consigam descobrir outros registros.
- Reutilize permissões: Não crie novos conjuntos de permissões para agentes. Use as mesmas strings de habilidade (ability strings) que seu aplicativo web utiliza.
- Marque efeitos colaterais: Use anotações para rotular ferramentas como apenas leitura ou com permissão de escrita.
Ao usar um único trait para buscas de organização, você cria um único lugar para auditar. Se a busca retornar null, a ferramenta informa ao agente que o registro não foi encontrado. O agente não recebe nenhuma informação sobre outros tenants.
Este não é um problema de IA. É um problema de multi-tenancy e autorização. O MCP torna fácil expor seu aplicativo, portanto, você deve ser disciplinado em relação aos seus limites.
Um agente deve fazer exatamente o que o humano pode fazer, dentro de seu próprio tenant, e nada mais.
Optional learning community: https://t.me/GyaanSetuAi
