Intégrations
Cursor
Configurer zn-gate dans Cursor en deux minutes, puis les détails techniques : le serveur MCP, les hooks qui bloquent la lecture des secrets et nettoient la sortie MCP, et ce que Cursor ne permet pas à zn-gate de couvrir.
Démarrage rapide (sans programmation)
-
Vérifiez que Node.js est installé. Dans Cursor, ouvrez Terminal → New Terminal, collez
node --versionet appuyez sur Entrée. Si vous voyez un numéro de version (18 ou supérieur), passez à l'étape suivante. Si vous voyez « command not found », installez la version LTS depuis nodejs.org, puis fermez et rouvrez Cursor. -
Installez zn-gate et activez sa protection pour Cursor. Collez chaque ligne dans le même terminal et appuyez sur Entrée après chacune :
npm install -g zn-gate zn hooks install cursorSur un Mac, si vous voyez
EACCES, suivez le guide de npm pour corriger les erreurs de permission. Sous Windows, si PowerShell indique que l'exécution de scripts est désactivée, tapez à la placezn.cmd hooks install cursor(non encore vérifié). -
Redémarrez Cursor.
Statut : ces étapes suivent la documentation de Cursor ; nous ne les avons pas encore exécutées de bout en bout dans Cursor (Cursor ne dispose pas de mode en ligne de commande avec hooks que nous puissions tester automatiquement), et pas du tout sous Windows.
Une fois en place, l'agent de Cursor ne peut plus lire les fichiers .env contenant de vraies valeurs ni les fichiers d'identifiants courants (lectures de fichiers et la plupart des commandes shell). Un secret reconnu par zn-gate dans votre message de chat est bloqué avant d'être envoyé, et les secrets reconnus sont supprimés des résultats des outils MCP.
- Si l'agent indique qu'il ne peut pas lire votre fichier
.env(facultatif) : exécutezzn unlock(il crée votre coffre local la première fois), puiszn env shadow .env. Votre.envcontient alors des marqueurs à la place des vraies valeurs, et zn-gate ne remplit les valeurs que pour les commandes que vous autorisez.
Pour annuler : zn hooks uninstall cursor.
Ce que zn-gate protège dans Cursor, et ce qu'il ne protège pas
| Dans Cursor | |
|---|---|
Bloque la lecture des fichiers .env contenant des valeurs, des fichiers d'identifiants (~/.aws/credentials, ~/.ssh/id_*…) et ~/.zn |
Oui, pour les lectures de fichiers et les commandes shell |
| Supprime les secrets des résultats des outils MCP | Oui |
| Bloque un secret collé dans le chat | Oui |
| Supprime les secrets de la sortie shell et du contenu des fichiers | Non. Cursor ne permet pas aux hooks de les modifier |
| Vérifie vos autres serveurs MCP contre l'injection de prompt | Oui, si vous les encapsulez (voir ci-dessous) |
Cursor CLI (cursor-agent) |
Non couvert : la prise en charge des hooks n'est pas documentée |
Non couvert : un secret affiché par une commande shell, ou écrit dans un fichier lu par l'agent qui n'est pas bloqué, atteint le modèle. Conservez les secrets dans le coffre de zn-gate (zn unlock, puis zn env shadow .env) afin que vos fichiers contiennent des marqueurs au lieu de vraies valeurs : voir Scrubber. Les hooks sont un garde-fou, pas un bac à sable.
Référence technique
zn-gate comme serveur MCP
Un clic (non encore vérifié) : ouvrez ce lien dans votre navigateur, et Cursor vous demande de confirmer.
cursor://anysphere.cursor-deeplink/mcp/install?name=zn-gate&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsInpuLWdhdGUiLCJtY3AiXX0%3D
Ou ajoutez-le manuellement à ~/.cursor/mcp.json (tous les projets) ou .cursor/mcp.json (un seul projet) :
{ "mcpServers": { "zn-gate": { "command": "npx", "args": ["-y", "zn-gate", "mcp"] } } }
L'agent peut alors appeler analyze_prompt, check_tool_call, check_tool_result et zn_status. C'est l'agent qui décide quand les appeler, donc ceci n'est pas une protection automatique à lui seul ; ce sont les hooks ci-dessus qui le sont.
Vérifier la sortie de vos autres serveurs 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)
Chaque résultat d'un serveur encapsulé est vérifié contre l'injection de prompt, et les secrets reconnus par zn-gate sont supprimés, avant que l'agent ne le voie. npx -y zn-gate init --revert restaure la sauvegarde.
Les hooks
zn hooks install cursor écrit le fichier hooks.json de Cursor (zn-gate 1.5 et versions ultérieures, npm) :
beforeReadFileetbeforeSubmitPromptéchouent en mode fermé : si le hook plante ou dépasse le délai, la lecture ou le prompt est bloqué.beforeShellExecutionbloque les commandes qui lisent des fichiers de secrets et oriente l'agent verszn runpour les commandes qui ont besoin d'un secret.postToolUsesupprime les secrets de la sortie des outils MCP (la seule sortie que Cursor laisse un hook modifier).preToolUsevérifie les écritures et suppressions au mieux : Cursor ne documente pas l'entrée de chaque outil.
Détails par agent et comparaison entre agents : compat.md.
Documentation de Cursor
- MCP : https://cursor.com/docs/context/mcp
- Liens d'installation MCP : https://cursor.com/docs/context/mcp/install-links
- Hooks : https://cursor.com/docs/hooks