Integrações

Cursor

Configure o zn-gate no Cursor em dois minutos e, depois, os detalhes técnicos: o servidor MCP, os hooks que bloqueiam leituras de segredos e higienizam a saída do MCP, e o que o Cursor não permite que o zn-gate cubra.

Ver .md

Início rápido (sem precisar programar)

  1. Verifique se o Node.js está instalado. No Cursor, abra Terminal → New Terminal, cole node --version e pressione Enter. Se aparecer um número de versão (18 ou superior), siga em frente. Se aparecer "command not found", instale a versão LTS em nodejs.org e depois feche e reabra o Cursor.

  2. Instale o zn-gate e ative a proteção para o Cursor. Cole cada linha no mesmo terminal e pressione Enter após cada uma:

    npm install -g zn-gate
    zn hooks install cursor

    No Mac, se aparecer EACCES, siga o guia do npm sobre como corrigir erros de permissão. No Windows, se o PowerShell disser que a execução de scripts está desabilitada, digite zn.cmd hooks install cursor (ainda não verificado).

  3. Reinicie o Cursor.

Status: estes passos seguem a documentação do Cursor; ainda não os executamos de ponta a ponta no Cursor (o Cursor não tem um modo de linha de comando com hooks que possamos testar automaticamente), e não os executamos de forma alguma no Windows.

Depois que funcionar, o agente do Cursor fica bloqueado de ler arquivos .env com valores reais e arquivos de credenciais comuns (leituras de arquivos e a maioria dos comandos de shell). Um segredo que o zn-gate reconhece na sua mensagem de chat é bloqueado antes de ser enviado, e os segredos que ele reconhece são removidos dos resultados das ferramentas MCP.

  1. Se o agente disser que não consegue ler o seu arquivo .env (opcional): execute zn unlock (ele cria o seu cofre local na primeira vez) e depois zn env shadow .env. Seu .env passa a conter marcadores em vez de valores reais, e o zn-gate preenche os valores apenas para os comandos que você permitir.

Para desfazer: zn hooks uninstall cursor.

O que o zn-gate protege no Cursor, e o que não protege

No Cursor
Bloqueia leituras de arquivos .env com valores, arquivos de credenciais (~/.aws/credentials, ~/.ssh/id_*…) e ~/.zn Sim, para leituras de arquivos e comandos de shell
Remove segredos dos resultados das ferramentas MCP Sim
Bloqueia um segredo colado no chat Sim
Remove segredos da saída do shell e do conteúdo de arquivos Não. O Cursor não permite que hooks os alterem
Verifica seus outros servidores MCP em busca de prompt injection Sim, se você os encapsular (abaixo)
Cursor CLI (cursor-agent) Não coberto: o suporte a hooks não está documentado

Não coberto: um segredo impresso por um comando de shell, ou escrito em um arquivo que o agente lê e que não é bloqueado, chega ao modelo. Mantenha os segredos no cofre do zn-gate (zn unlock, depois zn env shadow .env) para que seus arquivos contenham marcadores em vez de valores reais: veja Scrubber. Hooks são uma barreira de proteção, não um sandbox.

Referência técnica

zn-gate como servidor MCP

Um clique (ainda não verificado): abra este link no seu navegador e o Cursor pede que você confirme.

cursor://anysphere.cursor-deeplink/mcp/install?name=zn-gate&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsInpuLWdhdGUiLCJtY3AiXX0%3D

Ou adicione manualmente em ~/.cursor/mcp.json (todos os projetos) ou .cursor/mcp.json (um projeto):

{ "mcpServers": { "zn-gate": { "command": "npx", "args": ["-y", "zn-gate", "mcp"] } } }

O agente pode então chamar analyze_prompt, check_tool_call, check_tool_result e zn_status. O agente decide quando chamá-los, então, por si só, isso não é uma proteção automática; a proteção automática são os hooks acima.

Verifique a saída dos seus outros servidores MCP

npx -y zn-gate init --dry-run   # shows what would change
npx -y zn-gate init             # wraps each local server with zn-gate shield (a backup is written first)

Todo resultado de um servidor encapsulado é verificado em busca de prompt injection, e os segredos que o zn-gate reconhece são removidos, antes que o agente o veja. npx -y zn-gate init --revert restaura o backup.

Os hooks

zn hooks install cursor grava o hooks.json do Cursor (zn-gate 1.5 ou superior, npm):

  • beforeReadFile e beforeSubmitPrompt falham de forma fechada: se o hook travar ou exceder o tempo limite, a leitura ou o prompt é bloqueado.
  • beforeShellExecution bloqueia comandos que leem arquivos de segredos e direciona o agente para zn run em comandos que precisam de um segredo.
  • postToolUse remove segredos da saída das ferramentas MCP (a única saída que o Cursor permite que um hook altere).
  • preToolUse verifica gravações e exclusões com base no melhor esforço: o Cursor não documenta a entrada de todas as ferramentas.

Detalhes por agente e comparação entre agentes: compat.md.

Documentação do Cursor