SÉRIE HERMES AGENT ÉTAPE 2 6/24

Hermes Agent : comprendre MCP et brancher un premier serveur proprement

Branche un serveur MCP filesystem à Hermes, limite l’essai à un dossier de test et vérifie une lecture de fichier réellement effectuée par MCP.

DANS CE TUTORIELAller à une étape

Hermes sait déjà lire des fichiers avec ses outils natifs. Pourquoi lui ajouter un serveur pour le faire ? Ici, le fichier sert de point de repère : son contenu est facile à vérifier, ce qui permet de comprendre le branchement MCP avant de connecter un service plus complexe.

Nous allons créer un petit dossier, y déposer une note, puis demander à Hermes de la lire par le serveur MCP. Si l’agent utilise simplement son terminal ou son outil de lecture habituel, l’essai n’aura pas vérifié ce que nous cherchons.

Ce que tu auras à la fin
Un serveur MCP déclaré dans le bon profil, des outils de lecture identifiés et un fichier lu par l’un de ces outils. Tu sauras aussi désactiver le branchement sans effacer ton dossier de test.

1. Vérifier les prérequis

Il te faut un Hermes installé, un modèle qui répond et sait appeler des outils, ainsi qu’un terminal Linux ou WSL. Si tu débutes, commence par l’installation d’Hermes et les premiers outils utiles.

L’exemple lance Hermes et le serveur MCP dans le même environnement local. Sous Windows, ouvre la distribution WSL où Hermes est installé. Si Hermes tourne sur un VPS, c’est sur ce VPS que tu prépareras les fichiers et les commandes de ce parcours.

Le serveur retenu est @modelcontextprotocol/server-filesystem, en version 2.2.0 pour cet exemple. Cette version demande Node.js 24 ou plus. Installe une version LTS compatible depuis le site officiel Node.js si nécessaire, puis vérifie aussi la présence de npm et npx :

Terminal · vérifier les programmes disponibles
node --version
npm --version
npx --version
hermes -p default mcp --help

Node exécute le serveur ; npx permet de lancer son paquet npm et peut le télécharger au premier usage. Un accès au registre npm sera donc nécessaire si le paquet n’est pas déjà disponible en cache. Le modèle choisi dans Hermes peut lui aussi utiliser un service distant : « serveur MCP local » ne signifie pas que toute la session reste hors ligne.

Nous utiliserons le profil default partout. Remplace-le dans chaque commande si tu travailles avec un autre profil. Si ta version d’Hermes ne connaît pas les commandes MCP présentées ici, consulte le parcours de mise à jour avant de poursuivre.

2. Créer le dossier et son fichier de référence

Prépare un dossier neuf, sans document personnel ni lien vers un autre dossier. La commande suivante crée un nom unique dans ton répertoire utilisateur, puis écrit trois lignes dans note.txt. Elle ne réutilise pas un ancien dossier d’essai.

Terminal · créer le petit jeu d’essai
MCP_DEMO_DIR=$(mktemp -d "$HOME/tekbrut-mcp-XXXXXX") && {
  printf '%s\n' \
    'Projet : atelier de lecture.' \
    'Prochaine action : préparer une fiche courte.' \
    'Repère : citron-47.' > "$MCP_DEMO_DIR/note.txt"
  printf 'Dossier à déclarer : %s\n' "$MCP_DEMO_DIR"
  cat "$MCP_DEMO_DIR/note.txt"
}

Garde le chemin absolu affiché. Il ressemblera à /home/ton-compte/tekbrut-mcp-Ab12Cd, mais le tien sera différent. Nous le réutiliserons dans la configuration et dans les consignes. N’y remplace pas le chemin par $MCP_DEMO_DIR ou ~ : copie sa valeur complète.

Le point de comparaison
Tu dois retrouver les trois lignes du fichier, dont le repère citron-47. C’est ta référence locale. Le donner ensuite à Hermes dans la question ne prouverait rien : nous lui demanderons de le retrouver par lecture.

3. Comprendre le trajet de la demande

MCP, pour Model Context Protocol, permet à un client comme Hermes de découvrir et d’appeler les capacités proposées par un serveur. Dans cet exemple, le serveur est un programme lancé localement ; il n’y a pas de serveur web à héberger ni de port à ouvrir.

Les échanges passent par stdio : les entrées et sorties du processus servent à transporter les messages MCP. Tu ne discutes pas directement avec ce programme ; Hermes joue le rôle de client.

Lire un fichier avec MCP

Exemple local : Hermes lance le serveur et échange avec lui via stdio.

Hermes appelle un outil du serveur filesystem. Le serveur vérifie le chemin et lit le fichier dans le dossier autorisé ; son contenu revient à Hermes dans le résultat. Le serveur est lancé en lecture seule pour cet essai, et Hermes ne présente que les outils retenus. Ces réglages ne constituent pas une isolation système du processus.

Outil, serveur et skill : trois rôles différents

ÉlémentSon rôle ici
OutilUne action précise, comme list_directory ou read_text_file
Serveur MCPLe programme filesystem qui expose ces outils et les exécute
SkillUne méthode de travail qu’Hermes peut suivre ; elle n’est pas nécessaire à ce branchement

Le backend du terminal d’Hermes est un autre réglage. Le choisir en Docker ou en SSH ne suffit pas à déplacer ce serveur MCP local. Pour démêler les lieux d’exécution, retrouve le tuto local, Docker et SSH.

4. Déclarer un seul serveur dans le bon profil

Ferme la conversation Hermes de ce profil. Ouvre sa configuration et enregistre une copie du fichier avec ton éditeur avant de le modifier :

Terminal · ouvrir la configuration du profil
hermes -p default config edit

Ajoute le bloc ci-dessous en remplaçant uniquement le chemin d’exemple par celui de l’étape 2. lecture_demo est le nom de ce branchement. S’il existe déjà, choisis un autre nom et remplace-le aussi dans les commandes et consignes qui suivent.

Si ton fichier contient déjà mcp_servers:, ajoute lecture_demo: sous cette clé, au même niveau que les autres serveurs. Ne crée pas une deuxième clé mcp_servers: et conserve les autres entrées. Le YAML utilise des espaces pour l’indentation, pas des tabulations.

Configuration YAML · à adapter, pas à exécuter
mcp_servers:
  lecture_demo:
    command: "npx"
    args:
      - "-y"
      - "@modelcontextprotocol/server-filesystem@2.2.0"
      - "--read-only"
      - "--confine-roots"
      - "/home/ton-compte/tekbrut-mcp-Ab12Cd"
    tools:
      include:
        - "list_allowed_directories"
        - "list_directory"
        - "read_text_file"
      resources: false
      prompts: false

Le numéro de version fixe le paquet principal utilisé par cet exemple ; il ne fige pas toutes ses dépendances. -y autorise npx à télécharger le paquet sans question supplémentaire. Relis donc le nom avant d’enregistrer.

Trois réglages ont des rôles distincts :

  • --read-only retire les outils d’écriture exposés par ce serveur ; sans ce mode, filesystem sait aussi écrire.
  • --confine-roots empêche les dossiers annoncés par un client compatible avec le mécanisme Roots d’élargir le périmètre passé au lancement.
  • tools.include limite les outils présentés à Hermes à ceux de notre essai. Les accès MCP facultatifs aux ressources et aux prompts sont désactivés ici.
Ce que ces réglages ne garantissent pas
Ce sont des contrôles du serveur et du client, pas une isolation système du processus. Le programme lancé conserve les permissions de son compte. Pour apprendre, notre dossier ne contient que le fichier de test ; ne lui substitue pas ton répertoire personnel complet.

5. Vérifier la connexion avant la lecture

Enregistre la configuration, puis reviens au terminal. Ces commandes utilisent le même profil :

Terminal · contrôler le serveur déclaré
hermes -p default mcp list
hermes -p default mcp test lecture_demo

La liste doit contenir lecture_demo. Le test tente une connexion réelle : il peut télécharger puis lancer le programme défini dans la configuration. S’il échoue, garde le message exact et consulte le tableau de dépannage plus bas avant de poursuivre.

Un test de connexion réussi ne prouve pas encore qu’Hermes a lu ton fichier. Ouvre ensuite une nouvelle conversation :

Terminal · ouvrir la session d’essai
hermes -p default chat

Repère les outils rattachés à lecture_demo. Le nom complet affiché peut inclure un préfixe MCP et le nom du serveur ; utilise celui de ta version plutôt que de déduire sa forme. Le nom natif read_text_file, par exemple, ne doit pas être confondu avec un outil de lecture intégré à Hermes.

6. Lister, lire et comparer

Commence par vérifier le périmètre que le serveur annonce. Aucune lecture de fichier n’est encore nécessaire.

À demander à Hermes · vérifier le périmètre MCP
Avec le serveur MCP lecture_demo uniquement, appelle l’outil list_allowed_directories. Montre les chemins renvoyés. N’utilise ni le terminal ni un outil natif de lecture. Si l’outil MCP est indisponible, arrête-toi et indique-le.

Le résultat doit correspondre à ton dossier de test, éventuellement avec sa forme résolue si le système utilise un lien pour son chemin. Si le périmètre est inattendu, arrête l’essai et vérifie la configuration avant de demander la lecture.

Remplace maintenant le chemin dans la consigne suivante par le tien :

À demander à Hermes · lister puis lire par MCP
Utilise uniquement les outils du serveur MCP lecture_demo. Liste le dossier /home/ton-compte/tekbrut-mcp-Ab12Cd avec list_directory, puis lis son fichier note.txt avec read_text_file. Recopie les trois lignes du fichier et indique la prochaine action mentionnée. Ne passe pas par le terminal ni par un autre outil de lecture. Ne modifie rien. Si un appel échoue, montre l’erreur et arrête-toi.

Observe les appels d’outils et leurs sorties, puis la réponse d’Hermes. Le nom du serveur, le chemin envoyé et le contenu retourné permettent de suivre ce qui s’est passé.

Les trois observations attendues
  1. Le serveur annonce le dossier de test comme périmètre.
  2. L’appel MCP de liste retrouve note.txt.
  3. L’appel MCP de lecture renvoie les trois lignes créées à l’étape 2, dont le même repère.

La reformulation finale doit correspondre au fichier. Une bonne réponse obtenue avec un autre outil ne valide pas le branchement MCP. Inversement, une connexion réussie sans appel de lecture valide seulement la connexion.

7. Garder ou désactiver ce branchement

Ce premier serveur est un exercice pour comprendre le mécanisme. Pour tes lectures quotidiennes, les outils natifs d’Hermes peuvent suffire. Garde MCP lorsqu’il t’apporte une capacité ou une intégration utile, avec un périmètre que tu comprends.

Si tu ne conserves pas l’essai, ferme la conversation puis rouvre la configuration du même profil. Ajoute enabled: false sous lecture_demo:, au même niveau que command: et args:. Tu peux aussi retirer uniquement cette entrée. Ouvre une nouvelle session pour repartir avec cette configuration.

Désactiver l’entrée ne supprime pas ton dossier de test ni le cache npm. Tu pourras supprimer ce dossier séparément après avoir vérifié son chemin ; cela ne fait pas partie du branchement MCP.

Retrouver la cause d’un blocage

Ce que tu observesCe que tu vérifies d’abord
node, npm ou npx est introuvableInstallation dans le même Linux/WSL ou sur le même VPS qu’Hermes ; nouveau terminal après installation
Erreur de version NodeNode 24 ou plus pour le paquet retenu, y compris lorsque npx est lancé par Hermes
Le paquet ne se télécharge pasAccès au registre npm, nom exact et version du paquet ; distingue téléchargement et connexion MCP
lecture_demo n’apparaît pasBon profil, YAML enregistré, une seule clé mcp_servers, indentation correcte
Connexion MCP refusée ou incompatibleMessage du test, version d’Hermes et documentation de compatibilité ; n’ajoute pas un second serveur pour contourner l’erreur
Le dossier est introuvable ou refuséChemin absolu de l’étape 2, présence sur la machine du serveur, permissions et périmètre annoncé
Hermes lit avec un autre outilAppel effectivement choisi ; redemande le serveur MCP précis et arrête si ses outils ne sont pas disponibles
Des outils d’écriture restent accessiblesDistingue les outils natifs, ceux des autres serveurs et ceux de lecture_demo ; vérifie les options et la nouvelle session

La suite logique

Tu as relié trois éléments observables : un serveur connecté, un outil appelé et un résultat comparé au fichier d’origine. C’est ce même raisonnement qui servira pour une base de données ou un service distant, avec des permissions et des prérequis propres à chaque intégration.

Pour apprendre à donner ensuite une méthode de travail réutilisable à Hermes, poursuis avec comprendre les skills et créer une première skill.

Ce parcours est proposé pour être reproduit ; aucun essai complet Hermes/MCP n’a été exécuté pour cet article. Les versions et options ont été vérifiées dans les sources officielles le 8 novembre 2026 : MCP dans Hermes, configuration et filtrage, commandes MCP, serveur filesystem et version du paquet et prérequis Node.

↑ Revenir au sommaire