Aller au contenu principal
macOS uniquement · Pro
L'éditeur de code centré sur l'IA, bâti sur VS Code

Cursor + SSH via le serveur MCP de SSHive

Par Lucas Russo, développeur de SSHive · Mis à jour le

Laissez Cursor consulter vos serveurs en marche pendant qu'il modifie le code : lister les conteneurs, lire les journaux, comparer les configurations en SFTP. Serveur MCP local, aucun relais.

Cursor est un éditeur de code bâti sur VS Code autour d'un agent IA. Grâce à MCP, il peut appeler des outils extérieurs, et le serveur de SSHive lui en donne 20 : lister les sessions SSH ouvertes dans SSHive, lancer des commandes, parcourir, lire et écrire des fichiers en SFTP, et déplacer de gros fichiers en arrière-plan sans les faire passer par le contexte du modèle. Il n'atteint que les sessions connectées dans SSHive, par la connexion que SSHive a établie : Cursor ne détient jamais vos identifiants SSH. Le serveur écoute uniquement sur 127.0.0.1. L'association prend tout son sens quand le code dépend de l'état distant : un Dockerfile qui doit correspondre à ce que apt list --installed affiche sur l'hôte, une configuration nginx qui doit coller à celle déployée, une migration qui doit savoir quelles tables existent. Au lieu de deviner, ou de vous demander de coller, Cursor interroge SSHive. La mise en place tient en un bloc JSON, copié dans SSHive et collé dans le fichier MCP de Cursor.

Configurer Cursor avec SSHive en 4 étapes

  1. 1

    Activez le serveur MCP dans SSHive

    Dans SSHive, ouvrez Paramètres > MCP et activez « Activer le serveur MCP » ; le jeton Bearer est créé à ce moment-là. Laissez le panneau ouvert, le bloc pour Cursor s'y trouve. MCP fait partie de Pro.

  2. 2

    Collez le bloc JSON dans le fichier MCP de Cursor

    SSHive affiche le bloc pour Cursor avec votre vrai jeton ; celui ci-dessous porte <your-token> à sa place. Collez-le dans ~/.cursor/mcp.json pour utiliser SSHive dans tous vos projets, ou dans .cursor/mcp.json à la racine d'un seul projet. Si le fichier liste déjà des serveurs, ajoutez l'entrée sshive dans l'objet mcpServers existant. SSHive n'écrit pas ce fichier à votre place : une app de l'App Store n'en a pas le droit.

    À copier
    {
      "mcpServers": {
        "sshive": {
          "type": "http",
          "url": "http://127.0.0.1:49422/mcp",
          "headers": {
            "Authorization": "Bearer <your-token>"
          }
        }
      }
    }
  3. 3

    Redémarrez Cursor et vérifiez les outils

    Redémarrez Cursor, ou rechargez sa fenêtre, pour qu'il relise le fichier. sshive doit alors apparaître avec ses outils sous Available Tools : 20, ou 17 tant que « Laisser l'assistant ouvrir des sessions » est désactivé dans SSHive. S'il affiche une erreur, les journaux MCP du panneau Output de Cursor (Cmd+Maj+U) en donnent la raison ; un jeton erroné ou un serveur arrêté dans SSHive sont les causes habituelles.

  4. 4

    Connectez les sessions que Cursor doit atteindre

    Dans SSHive, connectez-vous aux serveurs sur lesquels Cursor doit travailler ; il ne voit que les sessions connectées. Demandez ensuite dans le chat de Cursor : « Quels conteneurs tournent sur prod ? » Cursor appelle ssh_list_sessions, choisit prod, lance docker ps par ssh_execute et répond.

Que demander à Cursor une fois connecté

Vous demandez

« Réécris ce Dockerfile pour qu'il corresponde aux versions de paquets réellement installées sur prod. »

Ce qui se passe

Cursor récupère apt list --installed par ssh_execute sur la session prod, le compare à votre Dockerfile et propose le minimum de changements.

Vous demandez

« Génère le docker-compose.yml à partir de la stack compose qui tourne sur staging. »

Ce qui se passe

Cursor lit le fichier compose déployé avec sftp_read_file et la sortie de docker compose config avec ssh_execute, puis produit un fichier compose propre, fidèle à ce qui tourne.

Vous demandez

« Regarde les 500 dernières lignes des journaux d'api-gateway sur prod et explique les erreurs 500. »

Ce qui se passe

Cursor lance docker logs --tail 500 api-gateway 2>&1 par ssh_execute, repère les requêtes terminées en 500 et résume la trace d'appels qui les explique.

Pourquoi associer Cursor à SSHive

Cursor est à son meilleur quand il écrit du code, et à son plus faible quand il doit deviner ce qui est déployé. Votre dépôt et vos serveurs s'écartent peu à peu, et sans aide Cursor ne voit pas l'écart. Le serveur de SSHive le comble : Cursor modifie le code, SSHive fournit les faits tirés des machines en marche, et la modification colle à la réalité du premier coup plutôt qu'après un déploiement raté. Le compromis de sécurité est raisonnable. Les sessions sont déjà authentifiées dans SSHive, sur le Mac où tourne Cursor : Cursor ne manipule jamais d'identifiants. Le serveur ne répond que sur l'interface de bouclage, et seulement aux requêtes qui portent le jeton ; un autre programme du Mac aurait lui aussi besoin de ce jeton. Et MCP est un protocole ouvert : vous pouvez couper le serveur, passer à Claude Code ou à un autre client, ou vérifier exactement quels outils sont exposés, quand vous le voulez.

Questions fréquentes

Cursor peut-il lancer une commande destructrice par accident ?+
Par défaut, Cursor demande votre accord avant d'utiliser un outil MCP, ssh_execute compris, et montre l'appel qu'il veut faire. Ses réglages d'exécution permettent de laisser certains outils s'exécuter sans demander ; gardez ssh_execute et les outils d'écriture sous approbation pour les sessions qui visent la production. Côté SSHive, Cursor ne travaille que sur les sessions que vous avez ouvertes, sauf si vous activez « Laisser l'assistant ouvrir des sessions ».
Ça marche avec l'agent de Cursor ?+
Oui. L'agent utilise les outils MCP listés sous Available Tools quand ils sont utiles, et il peut enchaîner plusieurs appels à SSHive, par exemple ssh_list_sessions, puis ssh_execute, puis sftp_read_file. Chaque appel attend votre accord, sauf si vous avez laissé cet outil s'exécuter seul.
Faut-il déclarer SSHive dans le fichier global ou dans un projet ?+
Les deux fonctionnent. ~/.cursor/mcp.json, dans votre dossier personnel, rend SSHive disponible dans tous vos projets ; .cursor/mcp.json à la racine d'un projet le limite à ce projet. Le jeton figure en clair dans le fichier : gardez un fichier de projet hors de votre dépôt Git.
Que devient ce que Cursor lit sur mes serveurs ?+
Cursor joint SSHive sur votre Mac, et SSHive joint vos serveurs ; aucun relais ne s'intercale. En revanche, les sorties de commandes et le contenu des fichiers que Cursor lit entrent dans la conversation, que Cursor envoie à son fournisseur de modèle avec votre code. Traitez-les comme du code que vous colleriez dans le chat.

Autres clients et pages liées

Claude Code + SSH via le serveur MCP de SSHive

L'assistant de code d'Anthropic, dans le terminal et dans l'IDE

Claude Desktop + SSH via le serveur MCP de SSHive

L'app de bureau d'Anthropic pour discuter avec Claude

Essayer SSHive gratuitement sur macOS

Obtenez le client tout-en-un SSH, SFTP, RDP et VNC pour Mac. Téléchargement gratuit, sans inscription.

Télécharger SSHive gratuitement