ÐаÑÐ¸Ñ Mudrykh - stock.adobe

Tutoriel : comment créer et gérer des serveurs MCP

Il n’existe pas d’approche standard pour configurer et gérer les serveurs MCP. Ce tutoriel vous enseigne les bases avec Claude Desktop et Docker, puis examine les points à retenir en matière de sécurité et de gestion.

Le protocole MCP (Model Context Protocol) connecte les assistants IA aux sources de données et aux utilitaires logiciels. Les serveurs constituent un élément essentiel de ce projet open source. Il s’agit de déployer des interfaces servant de point de connexion entre un modèle IA et les services externes auxquels il accède pour accomplir des tâches.

À quoi sert un serveur MCP ?

Par exemple, un serveur pourrait se connecter au compte Gmail d’un utilisateur et effectuer des actions telles que lire ou écrire des e-mails. Ou encore, un autre pourrait ouvrir des fichiers sur un système de fichiers local. Les utilisateurs peuvent déployer et utiliser plusieurs serveurs MCP en même temps.

Un serveur MCP est contrôlé par un client qui facilite les interactions entre lui et un grand modèle de langage. Le LLM détermine quand utiliser les outils à sa disposition pour répondre à une requête utilisateur. Il demande ensuite aux serveurs associés d’exécuter les commandes appropriées.

Comme il existe de nombreuses façons de configurer et de déployer les serveurs MCP, leur gestion peut s’avérer fastidieuse. Il n’existe pas non plus – en tout cas pas encore – de méthodes standardisées pour les regrouper et les surveiller. De plus, ils posent de nombreux problèmes de sécurité auxquels les ingénieurs doivent être très attentifs.

Pour utiliser efficacement le protocole, vous devez disposer d’une stratégie de création et de gestion des serveurs MCP. Ce conseil propose un tutoriel sur la configuration d’un serveur MCP, ainsi que les principaux défis à relever et les bonnes pratiques à adopter.

Configurer un serveur MCP étape par étape

Pour illustrer le fonctionnement de MCP, examinons les étapes nécessaires au déploiement d’un serveur MCP, puis utilisons-le pour effectuer des tâches via un LLM. Cet exemple utilise le serveur de système de fichiers, qui peut effectuer des opérations sur les fichiers (telles que la lecture et l’écriture) à partir du système de fichiers local d’un ordinateur.

Commencez par télécharger le code source du serveur MCP depuis GitHub à l’aide de git :

git clone https://github.com/modelcontextprotocol/servers.git

Ensuite, accédez au répertoire que vous venez de télécharger et créez une image de conteneur à l’aide de la commande docker build avec ce fichier Dockerfile :

cd servers

docker build -t mcp/filesystem -f src/filesystem/Dockerfile .

2. Configurer Claude Desktop

Vous avez maintenant créé une image de conteneur. Pour utiliser le serveur avec un LLM, vous devez le connecter à un client. Ce tutoriel utilisera Claude Desktop, une application qui se connecte aux LLM d’Anthropic.

Afin de rendre les serveurs MCP disponibles pour Claude Desktop, modifiez le fichier de configuration associé appelé claude_desktop_config.json. L’emplacement du fichier varie selon les systèmes d’exploitation :

  • Sur Windows. %APPDATA%\Claude\claude_desktop_config.json
  • Sur macOS. ~/Library/Application Support/Claude/claude_desktop_config.json
  • Sur Linux. ~/.config/Claude/claude_desktop_config.json

Claude Desktop n’est pas officiellement compatible avec Linux, mais vous pouvez l’installer sur Ubuntu 25.04 à l’aide d’une version non officielle fournie par l’utilisateur GitHub aaddrick.

Une fois que vous avez localisé le fichier claude_desktop_config.json, ouvrez-le dans un éditeur de texte et ajoutez une section comme celle-ci :

{

  "mcpServers": {

    "filesystem": {

      "command": "docker",

      "args": [

        "run",

        "-i",

        "--rm",

        "-v", "/home/chris:/home/chris",

        "mcp/filesystem",

        "/home"

      ]

    }

  }

}

 

Ce tutoriel utilise « chris » comme répertoire personnel, mais le vôtre aura son propre nom.

Ce code indique à Claude Desktop d’exécuter la commande suivante au démarrage :

docker run -i --rm -v /home/chris:/home/chris mcp/filesystem /home

Cette commande démarre un conteneur qui expose le répertoire /home/chris du système hôte au serveur MCP. Pour ce faire, elle monte un volume dans le conteneur qui mappe /home/chris sur l’hôte dans un répertoire nommé /home/chris à l’intérieur du conteneur. Si vous ne montez pas ce volume, le serveur MCP ne peut accéder qu’aux fichiers du système de fichiers du conteneur, et non à ceux de l’hôte.

Après avoir modifié le fichier claude_desktop_config.json, redémarrez Claude Desktop pour que les modifications prennent effet.

3. Utiliser le client et le serveur MCP

Après avoir redémarré Claude Desktop, vérifiez que le serveur est disponible en cliquant sur le bouton de configuration dans le coin inférieur gauche de la boîte de dialogue. Ce bouton affiche, entre autres, une liste des serveurs MCP connectés.

Capture d'écran de Claude Desktop qui montre un menu avec les options suivante : 'Use style,' 'Web search' (qui est activé), 'filesystem' et un menu de recherche. Les boutons 'Reply' et '+' se trouvent en bas à gauche.
Image 1. Le bouton de configuration dans Claude Desktop affiche les serveurs MCP connectés.

Comme l’indique l’image 1, le serveur de système de fichiers est disponible.

Afin d’utiliser le serveur, posez une question dans Claude Desktop qui incitera le LLM à utiliser le serveur MCP pour effectuer une tâche.

Par exemple, j’ai soumis la requête suivante : « liste le contenu du répertoire /home/chris ».

Cela a généré une fenêtre contextuelle, illustrée par l’image 2, demandant l’autorisation d’utiliser le serveur MCP du système de fichiers pour répondre à la requête.

Capture d'écran d'une alerte pop-up de Claude demandant la permission d'utiliser list_directory depuis le système de fichiers.
Claude Desktop demande l'autorisation d'utiliser le système de fichiers pour effectuer des requêtes.

Après avoir donné mon autorisation, le modèle a utilisé le serveur pour répondre à la demande. L’image 3 montre le résultat obtenu.

Capture d'écran du contenu du répertoire personnel Linux montrant les fichiers de configuration et les répertoires cachés à l'intérieur du répertoire /home/chris.
Image 3. Le modèle répertorie le contenu du répertoire /home/chris à l'aide du serveur MCP.

J’ai ensuite soumis une requête demandant au modèle d’écrire un nouveau fichier nommé hey.txt dans mon dossier de bureau à l’emplacement /home/chris/Desktop. Une fois encore, il a répondu à ma demande en utilisant le serveur MCP.

Capture d'écran d'un fichier texte nommé 'hey.txt' écrit sur le chemin /home/chris/Desktop/hey.txt avec le contenu spécifié à l'aide de la commande 'write_file' command.
Image 4. Le modèle écrit le nouveau fichier dans le dossier du bureau à l'aide du serveur MCP.

J’ai vérifié que le fichier avait bien été créé et qu’il était accessible directement depuis le système hôte.

Capture d'écran du terminal affichant le contenu du fichier « hey.txt » après utilisation de la commande cat : « Bonjour ! Ceci est un fichier test créé par Claude »
Image 5. Le modèle a utilisé le serveur MCP pour créer et vérifier le fichier « hey.txt » sur le bureau.

4. Avec un prompt plus complexe

Jusqu’à présent, ce tutoriel a couvert l’utilisation du serveur MCP qui pourrait également être facilement réalisée à l’aide de commandes CLI de base (comme ls et touch) ; les opérations ci-dessus ne sont donc pas particulièrement impressionnantes. Pour démontrer ce qui rend un serveur MCP si puissant, essayons un prompt plus complexe :

« Sur mon ordinateur, il y a un dossier nommé christozzi.com qui contient des fichiers PHP. Convertis ces fichiers PHP en HTML. Laisse les fichiers PHP d’origine en place. »

Claude Desktop a accompli la tâche avec l’aide du serveur MCP. Il a utilisé l’outil de système de fichiers pour localiser le répertoire spécifié dans l’invite et identifier les fichiers PHP qu’il contient. Le modèle a ensuite converti le code PHP en HTML. Cette partie de la tâche ne nécessite pas l’aide d’un serveur MCP, car la plupart des grands LLM sont capables de manipuler du code de manière indépendante.

Capture d'écran illustrant le processus étape par étape de conversion de fichiers PHP en HTML. Cela comprend l'exploration des structures de répertoires, la recherche de fichiers spécifiques, la lecture de plusieurs fichiers, puis leur conversion.
Image 6. Les serveurs MCP peuvent prendre en charge des prompts en plusieurs étapes en plus de tâches simples.

La méthode traditionnelle pour convertir un répertoire de fichiers d’un type de fichier en un autre consiste à écrire un script. Les tâches de scripting nécessitent beaucoup de temps, d’efforts et de compétences en programmation. Grâce à l’aide d’un serveur MCP et d’un agent IA, je n’ai eu qu’à formuler une simple invite en langage naturel.

La gestion des fichiers sur un ordinateur n’est qu’un exemple. Pour comprendre tout ce que fait MCP, explorez la liste des serveurs du projet MCP sur GitHub. Vous pouvez également développer votre propre serveur MCP à partir de zéro.

Les défis liés à la gestion des serveurs MCP

Il est assez simple d’exécuter un seul serveur MCP et de le connecter à un client à des fins de test. Mais lorsque vous souhaitez utiliser des serveurs MCP en production, leur gestion peut rapidement devenir difficile en raison des facteurs suivants :

  • Déploiement des serveurs. Pour les configurer et les déployer, l’utilisateur doit modifier manuellement les données de configuration dans une application cliente telle que Claude Desktop. Avec des dizaines d’applications clientes MCP, chacune ayant sa propre approche de la configuration des serveurs, le déploiement peut s’avérer fastidieux.
  • Gestion des binaires. Il n’existe actuellement aucune méthode standardisée pour packager les serveurs MCP. Si vous les déployez sur un ordinateur local, vous devez garder une trace des différents binaires exécutés sur chaque serveur. Il peut s’agir d’images de conteneurs, de scripts Python, d’exécutables Node.js ou d’autres formats.
  • Surveillance. Les serveurs MCP ne disposent pas d’une méthode standardisée pour générer des fichiers de logs ou des métriques. Cette capacité dépend de la présence ou non d’une logique interne pour ces tâches. Par conséquent, si un problème survient sur le serveur, il n’est pas toujours facile d’en déterminer la cause.
  • Sécurité. Pour empêcher les serveurs MCP d’effectuer des actions malveillantes, telles que l’exposition de données sensibles à un LLM ou la suppression de fichiers, vous devez restreindre leurs capacités au cas par cas. Assurez-vous toujours d’obtenir le code du serveur MCP auprès d’une source fiable.

Les bonnes pratiques pour la gestion des serveurs MCP

Ces quelques astuces peuvent rationaliser la gestion des serveurs MCP :

  • Déployez les serveurs MCP de manière cohérente. Choisissez une approche unique pour tous les exécuter, par exemple en les déployant sous forme d’images de conteneur.
  • Stockez les binaires des serveurs MCP dans un emplacement central, tel qu’un registre de conteneurs. Cela vous permet de garder une trace des ressources et peut contribuer à atténuer les risques de sécurité. À condition que vous appliquiez des contrôles d’accès appropriés à l’emplacement de stockage.
  • Méfiez-vous des serveurs provenant de sources inconnues. Ne téléchargez pas de code de serveur MCP à partir de dépôts GitHub obscurs. Utilisez uniquement des serveurs fournis ou officiellement approuvés par une source fiable.
  • Limitez les autorisations des serveurs MCP. Lors de leur configuration, suivez le principe du moindre privilège en autorisant chaque serveur à accéder uniquement aux commandes et aux sources de données spécifiques nécessaires pour prendre en charge le cas d’usage souhaité.
  • Utilisez des outils de gestion de serveur MCP. Renseignez-vous sur des outils tels que GetMCP, qui automatise la configuration et le déploiement du serveur MCP pour certains clients, et Inspector, un outil de débogage porté par les responsables du projet open source permettant de les dépanner. Néanmoins, Inspector est davantage conçu pour déboguer le code pendant le développement que pour dépanner les erreurs ou optimiser les performances.

Pour approfondir sur IA appliquée, GenAI, IA infusée