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.
Início rápido (sem precisar programar)
-
Verifique se o Node.js está instalado. No Cursor, abra Terminal → New Terminal, cole
node --versione 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. -
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 cursorNo 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, digitezn.cmd hooks install cursor(ainda não verificado). -
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.
- Se o agente disser que não consegue ler o seu arquivo
.env(opcional): executezn unlock(ele cria o seu cofre local na primeira vez) e depoiszn env shadow .env. Seu.envpassa 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):
beforeReadFileebeforeSubmitPromptfalham de forma fechada: se o hook travar ou exceder o tempo limite, a leitura ou o prompt é bloqueado.beforeShellExecutionbloqueia comandos que leem arquivos de segredos e direciona o agente parazn runem comandos que precisam de um segredo.postToolUseremove segredos da saída das ferramentas MCP (a única saída que o Cursor permite que um hook altere).preToolUseverifica 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
- MCP: https://cursor.com/docs/context/mcp
- Links de instalação MCP: https://cursor.com/docs/context/mcp/install-links
- Hooks: https://cursor.com/docs/hooks