Permissões do agente MCP

O que pode fazer um agente MCP: permissões do seu humano, alcance por projeto e VPS, só leitura e operações sempre proibidas.

  • Categoria: Inteligência artificial e agentes
  • Estado: Disponível
  • Requisitos: Uma conta ArduMaker que autoriza o agente; Um agente ligado ao servidor MCP (ver Servidor MCP)
  • Ferramentas MCP (Só leem): ver_contexto_inicial

Markdown

O que permite fazer?

  • Limitar um agente a certos projetos e, em separado, a certos VPS.
  • Deixar um agente em só leitura: não vê nem pode chamar ferramentas que modificam dados.
  • Mudar o alcance ou o modo a partir de /me sem voltar a ligar o agente, com efeito na sua próxima chamada.
  • Revogar um agente ou todos de uma vez, no momento.
  • Saber antecipadamente o que o agente pode editar ou apagar em um projeto, e porque não.

Quando convém usar?

  • Ao ligar um agente novo: começar com o alcance mínimo e em só leitura se só tiver de diagnosticar.
  • Quando um agente vai trabalhar sobre um único VPS ou um único projeto.
  • Se se suspeitar que uma credencial foi divulgada: revogar.

Como funciona na ArduMaker?

Uma permissão de um agente é a soma de três camadas. As três terminam em “não”, mas o motivo é diferente e a resposta di-lo:

CamadaO que decideMotivo devolvido
A pessoa que autorizouO agente age como essa pessoa: papel na empresa, em cada projeto e acesso a cada VPS (incluindo as listas de membros permitidos e excluídos do VPS)the human who authorized this agent is not an admin of this project
A sessãoO alcance escolhido ao aprovar: projetos, VPS e só leiturathis agent was authorized with read-only scope
As regras do MCPOperações que nenhum agente pode fazer, tenha o alcance que tiverno MCP agent can ever do this, whatever its scope

Alcance

  • Ao aprovar escolhe-se “todos os projetos” ou uma lista, e em separado “todos os VPS” ou uma lista. Cada id é validado contra o que a pessoa pode ver: não é possível dar a um agente mais acesso que o próprio.
  • O alcance não fica congelado no token: é resolvido em tempo real em cada chamada. Reduzi-lo a partir de /me vale na chamada seguinte.
  • Um alcance restrito sem nenhum id não é aceito: para deixar um agente sem acesso, revoga-se.

Só leitura

  • A lista de ferramentas só inclui as que declaram que só leem.
  • Se mesmo assim chamar uma que escreve, a chamada é rejeitada com sin_permiso e reintentable: false, e fica registrada como rejeição.
  • A mesma regra vale para o que o agente possa tocar pela API REST (terminais, Docker): um agente só de leitura não modifica um VPS por nenhum caminho.
  • Ao tirar o só leitura, as ferramentas de escrita funcionam logo; um cliente que já tinha a lista carregada pode precisar de a recarregar.

O que nenhum agente pode fazer

  • Apagar um projeto completo.
  • Acrescentar ou retirar membros de um projeto, ou mudar o seu papel.
  • Criar, editar ou apagar um anexo marcado como secreto (lê-lo sim, se a pessoa puder).
  • Apagar um VPS completo.
  • Criar, editar ou apagar papéis de um projeto, ou mudar quem tem que permissões.
  • Criar, editar ou assinar as políticas de um projeto.
  • Ler ou tocar nas finanças de um projeto: orçamentos, pagamentos de clientes, o que recebe cada colaborador e os seus comprovativos.
  • Enviar mensagens de WhatsApp para números reais (só o sandbox).

O que muda realmente?

  • A link guarda o alcance (alcance_todos, proyectos_permitidos, alcance_todos_vps, vps_permitidos) e solo_lectura.
  • Revogar marca a link como revogada e corta também a cadeia de refresh tokens: o agente perde acesso no momento e não se pode renovar.
  • Fechar todas as sessões revoga todos os agentes da pessoa.

Proteções e ferramentas restritas

Algumas operações são permitidas mas pedem uma confirmação no argumento, para que fique claro o que se destrói:

OperaçãoProteção
Registro DNS crítico (MX, NS, A/AAAA no apex)confirmado=true; sem ele, 409
Apagar um usuário Linuxconfirmacion com o nome exato; nunca root
Comando com forma destrutiva (rm -rf, mkfs, shutdown, DROP DATABASE…)409 com o que coincidiu; reenviar com confirmado=true. É uma proteção contra acidentes, não uma fronteira de segurança
userdel ou deluser pela shellSempre rejeitado: o caminho é eliminar_usuario_vps
Apagar um serviço systemd críticoNomes protegidos (ssh, nginx, docker, mysql, postgresql…)

Há ainda ferramentas só para administradores do sistema (caixa interna de bugs e pedidos de escolas). Só aparecem se quem autorizou for admin do sistema, e isso é consultado em tempo real em cada chamada: se lhe tirarem o papel, o seu agente perde-o no momento.

Esquema

  1. Existe por MCP?: se não: nunca permitido
  2. A sessão é só de leitura?: se escreve: rejeição
  3. Está no alcance?: projeto e VPS permitidos
  4. A pessoa pode?: papel de empresa, projeto e VPS
  5. Pede confirmação?: confirmado / confirmacion
O agente pode fazer isto?

Resultado esperado

  • ver_contexto_inicial devolve o alcance (solo_lectura, todos_los_proyectos, todos_los_vps) e nunca_permitido.
  • Ao ver um projeto ou uma tarefa, a resposta inclui um bloco de permissões com editar, borrar e, se algo estiver em false, o motivo.
  • Em /me cada link mostra o seu alcance, se está ativa e se foi detetada reutilização de um token (reuse_detected_at).

Erros e resolução

RespostaCausaO que fazer
sin_permiso por só leituraA sessão não escreveAvisar a pessoa: tira-o em /me; repetir não serve
sin_permiso (403)A pessoa não tem essa permissão, ou o recurso está fora do alcancePedir a permissão ou alargar o alcance
sin_permiso (430)Ferramenta de admin do sistema e quem autorizou não o éNão há caminho
conflicto (409)Falta a confirmação de uma proteçãoRever e reenviar com a confirmação
PATCH 400 em /meCampo desconhecido, tipo inválido ou alcance restrito sem idsCorrigir o pedido
PATCH 409 em /meA link está revogadaVoltar a autorizar

Relação com MCP

O alcance decide-se no tela de autorização e edita-se em /me (agentes ligados); não há ferramentas MCP para mudar as próprias permissões. A partir do agente, ver_contexto_inicial é a forma de as conhecer antes de planear. Mais detalhe em /mcp/docs.

Funcionalidades relacionadas