Serveur MCP distant ou local : lequel choisir ?

Les serveurs MCP locaux s’exécutent comme un processus sur votre propre machine, via stdio, tandis que les serveurs MCP distants se trouvent derrière un point d’accès HTTPS que toute personne de votre équipe peut joindre. Cet article compare installation, sécurité, latence, coût et mise à l’échelle pour vous aider à choisir le bon serveur pour votre agent d’IA.

Serveur MCP distant ou local : lequel choisir ?
Cristian Da Conceicao
Fondateur de Picasso IA

Votre fichier de configuration d’agent IA demande une seule chose avant tout : le choix entre command et url. Cette ligne unique détermine où s’exécutent vos outils, qui peut les atteindre, ce qui se passe quand votre ordinateur portable se met en veille et qui paie la machine qui les fait tourner. Mal choisir, et vous devez surveiller une kyrielle de processus en arrière-plan, ou vous ouvrez à un serveur inconnu un accès à vos fichiers.

Le choix entre un serveur MCP local et un serveur MCP distant paraît technique, mais il porte en réalité sur la confiance, la distance et la propriété. Cet article présente le fonctionnement de chacun, les situations où chacun l’emporte, où chacun pose problème, et se termine par une courte liste de contrôle pour décider en cinq minutes plutôt qu’en cinq réunions.

💡 Réponse rapide : Utilisez un serveur local lorsque l’outil touche aux fichiers, aux shells ou aux données privées de votre machine. Utilisez un serveur distant lorsque plusieurs personnes, appareils ou agents ont besoin du même outil sans rien installer.

Ce que fait réellement un serveur MCP

Le Model Context Protocol, ou MCP, est un standard ouvert qui permet à une application d’IA d’appeler des outils externes via une interface cohérente. Au lieu d’écrire un plugin spécifique pour chaque modèle et chaque application, un développeur écrit un seul serveur. Tout client compatible peut alors lister ses outils, les appeler et lire les résultats.

La répartition client-serveur

Trois rôles entrent en jeu. L’hôte est l’application que vous utilisez, comme un éditeur de code ou un assistant de discussion. À l’intérieur vit un client MCP, qui maintient une connexion un à un avec un serveur. Le serveur expose des outils (actions que le modèle peut demander), des ressources (données que le modèle peut lire) et des prompts (modèles réutilisables). Les messages circulent en JSON-RPC 2.0 : le trafic est donc du texte structuré et simple, quel que soit le chemin entre le point A et le point B.

Vue aérienne d’un carnet de croquis avec deux cases reliées par une flèche, représentant un client et un serveur MCP

C’est cette partie « comment il passe de A à B » qui résume tout le débat entre local et distant.

Deux transports, deux univers

La spécification définit deux transports standard :

  • stdio : le client lance le serveur comme processus enfant et communique avec lui via l’entrée et la sortie standard.
  • Streamable HTTP : le serveur tourne de son côté à une URL, et le client lui envoie des requêtes HTTP, en recevant éventuellement des réponses diffusées en flux.

Les serveurs locaux utilisent presque toujours stdio. Les serveurs distants utilisent Streamable HTTP, qui a remplacé l’ancien transport HTTP plus SSE. Les outils eux-mêmes peuvent être identiques dans les deux cas. Seule l’infrastructure de communication change, et c’est elle qui détermine votre modèle de sécurité, votre latence et votre facture de maintenance.

Comment fonctionnent les serveurs MCP locaux

stdio en pratique

Avec stdio, votre client lit un fichier de configuration, lance la commande que vous avez écrite et garde ce processus actif pendant toute la session. Les requêtes entrent par stdin, les réponses sortent par stdout, et les journaux vont sur stderr. Une sortie parasite envoyée sur stdout, par exemple via print, corrompt le flux du protocole, un bug classique du premier jour.

{
  "mcpServers": {
    "project-files": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/projects"]
    }
  }
}

Pas de port à ouvrir, pas de règle de pare-feu ni d’écran de connexion. Le processus hérite de vos droits d’utilisateur et de vos variables d’environnement, ce qui explique sa grande commodité et pourquoi il mérite réflexion.

Photo macro d’un câble USB-C branché sur un ordinateur portable en aluminium brossé, illustrant une connexion locale directe

Les atouts des serveurs locaux

  • Aucun saut réseau. Les appels restent sur une seule machine, donc la couche protocole ajoute presque aucun délai, généralement bien moins d’une milliseconde.
  • Accès direct aux ressources privées. Fichiers locaux, base de données de développement sur localhost, dépôt Git, shell, émulateur.
  • Fonctionne hors ligne. Vos outils continuent de tourner dans un avion ou dans un bureau en sous-sol sans réseau.
  • Pas de facture d’hébergement. Vous fournissez le processeur et la mémoire.
  • Les identifiants restent chez vous. Les secrets vivent dans votre propre environnement et ne traversent jamais Internet vers un tiers.

Vue en contre-plongée d’un mini PC compact posé sur un bureau en bois à côté d’un ordinateur portable et d’un écran

Les limites des serveurs locaux

Chaque coéquipier doit installer le runtime, figer la bonne version et copier la configuration. Mettez le serveur à jour et dix ordinateurs portables se désynchronisent. Chaque application cliente lance aussi son propre processus : trois éditeurs signifient trois copies qui tournent côte à côte. Et un serveur local meurt avec votre session, donc rien ne peut l’appeler quand votre ordinateur est fermé.

Le support est le coût caché. Quand un outil tombe en panne sur la machine d’une personne, vous déboguez une version de Node, un problème de PATH ou un paquet Python manquant, au lieu de l’outil lui-même.

Comment fonctionnent les serveurs MCP distants

HTTP et diffusion en continu

Un serveur distant vit à une URL comme https://tools.example.com/mcp. Le client envoie les messages JSON-RPC sous forme de requêtes HTTP POST vers ce point d’accès unique. Le serveur répond soit par une réponse JSON classique, soit en ouvrant un flux Server-Sent Events lorsqu’il a des mises à jour de progression ou plusieurs messages à envoyer. Un en-tête de session permet au serveur de conserver un état entre les appels.

Pour en ajouter un, une seule commande suffit dans la plupart des clients :

claude mcp add --transport http notes https://tools.example.com/mcp

Comme le point d’accès est joignable depuis Internet, l’authentification passe de « qui est connecté sur cet ordinateur portable » à « qui détient un jeton valide ». Le flux d’autorisation de la spécification repose sur OAuth : l’utilisateur se connecte via le navigateur et le client stocke un jeton limité à certains droits et révocable.

Vue aérienne d’une longue allée de baies de serveurs dans un centre de données

Les atouts des serveurs distants

  • Installation unique, usage partout. Un téléphone, un ordinateur portable, un assistant de navigateur et une tâche CI peuvent tous interroger le même point d’accès.
  • Mises à jour centralisées. Corrigez un bug sur le serveur et chaque client en profite dès l’appel suivant.
  • Contrôle d’accès réel. Connexion par utilisateur, journaux d’audit et jetons révocables.
  • Calcul intensif. Les GPU, les grands index et les longues tâches ont leur place sur un serveur, pas sur un ordinateur portable.
  • État partagé. Quotas, files d’attente et caches vivent à un seul endroit au lieu d’être copiés partout.

Façade extérieure d’un centre de données au crépuscule, avec des groupes de refroidissement sur le toit et une clôture périmétrique

Le connecteur de PicassoIA en est un bon exemple concret. C’est un serveur MCP distant qui expose des outils de génération d’images, d’édition d’images et de génération de vidéos. Les tâches sont asynchrones : un appel de génération renvoie aussitôt un identifiant de prédiction, et le client interroge le résultat à intervalles réguliers. Une limite partagée de cinq prédictions simultanées par compte s’applique à toutes les connexions, ce qui n’est possible que parce que l’état vit sur le serveur. Votre ordinateur portable n’a jamais besoin d’un GPU, d’un téléchargement de modèle ni d’un environnement Python.

Les limites des serveurs distants

Vous dépendez désormais de la disponibilité de quelqu’un d’autre et de votre propre connexion. Les allers-retours réseau ajoutent de la latence à chaque appel d’outil, et une poignée de main lente peut donner à un agent une impression de lenteur. Tout ce dont le serveur a besoin sur votre machine, comme un fichier local, n’est tout simplement pas là. L’hébergement implique des certificats TLS, de la supervision, des limites de débit et quelqu’un d’astreint. Et un point d’accès public est une cible : il exige une authentification solide dès le premier jour.

Comparaison côte à côte

CritèreLocal (stdio)Distant (Streamable HTTP)
Lieu d’exécutionVotre machine, sous forme de processus enfantUn serveur hébergé derrière une URL
Installation par utilisateurInstaller un runtime et modifier la configurationColler une URL et se connecter
Mises à jourManuelles sur chaque machineDéployées une seule fois
Réseau nécessaireNonOui
Accès aux fichiers locauxDirectAucun, sauf si vous les importez
Modèle d’authentificationUtilisateur du système et variables d’environnementOAuth ou jetons bearer
Prise en charge multi-utilisateursFaibleConçu pour cet usage
Surcoût de latenceNégligeableUn aller-retour réseau par appel
Coût d’exploitationVotre propre matérielHébergement plus maintenance
Panne typiqueLe processus plante ou ne démarre pasIndisponibilité, délai dépassé ou jeton expiré

Compromis de sécurité

Aucune des deux options n’est automatiquement plus sûre. Un serveur local tourne avec vos droits : un paquet malveillant ou bogué peut donc lire vos fichiers et votre configuration SSH, et tout ce qui est tiré via npx ou uvx est du code que vous n’avez probablement pas audité. Un serveur distant garde ce code hors de votre machine, mais vous faites confiance à son exploitant pour tout ce que l’outil reçoit, et chaque requête transite par le réseau.

Gros plan d’un cadenas en laiton accroché à la porte d’une armoire serveur en acier

💡 Règle empirique : Traitez tout serveur MCP comme une extension de navigateur. Vérifiez qui l’a écrit, figez la version et n’accordez que les droits les plus restreints qui lui permettent de fonctionner.

Quelques points précis à mettre en place :

  • Serveurs HTTP locaux : liez-les à 127.0.0.1 et validez l’en-tête Origin, sans quoi une page web ouverte dans votre navigateur peut les atteindre via un DNS rebinding.
  • Serveurs distants : exigez OAuth, limitez strictement la portée des jetons, faites-les expirer et journalisez chaque appel.
  • Les deux types : partez du principe que la sortie d’un outil peut contenir une injection de prompt, et gardez une étape d’approbation humaine pour toute action destructrice, comme supprimer des fichiers ou envoyer de l’argent.

Latence et fiabilité

La couche stdio ne coûte presque rien. Un appel distant ajoute au moins un aller-retour réseau, qui peut représenter quelques millisecondes au sein d’une même région et quelques centaines entre continents, sans compter le TLS et les vérifications d’authentification éventuelles. En pratique, le travail propre de l’outil, comme une requête de base de données, un appel d’API ou un rendu d’image, éclipse le transport. La latence distante ne pose vraiment problème que pour les agents bavards qui enchaînent des dizaines de petits appels.

Panneau de brassage réseau avec des câbles Ethernet soigneusement regroupés dans un local technique

La fiabilité fonctionne dans l’autre sens. Un processus local échoue bruyamment et visiblement, généralement au démarrage. Un service distant peut échouer discrètement : jeton expiré, limite de débit, panne régionale. Prévoyez des nouvelles tentatives et rédigez des messages d’erreur sur lesquels un modèle peut agir.

Définissez des délais explicites des deux côtés. Un client qui attend indéfiniment un appel distant bloqué fige toute la conversation, tandis qu’un serveur qui abandonne trop tôt coupe les tâches longues légitimes, comme le rendu vidéo. Signalez la progression pour toute opération qui dure plus de quelques secondes.

Coût et maintenance

Le local ne coûte rien en hébergement, mais il coûte du temps en support, et chaque ticket « ça marche sur ma machine » vous revient. Le distant coûte de l’argent et du travail d’exploitation, mais fait gagner du temps de support dès qu’une équipe est concernée. Le seuil de rentabilité se situe au moment où plus d’une poignée de personnes ont besoin du même serveur.

Une façon simple de l’estimer : comptez les personnes, multipliez les minutes que chacune passe chaque mois sur l’installation et le dépannage, puis comparez ce total à un petit forfait d’hébergement. Pour deux personnes, la voie locale l’emporte généralement. Pour vingt, c’est rarement le cas.

Quelle option convient à votre cas

Scénarios pour développeur solo

Optez pour le local lorsque vos outils touchent à vos propres ressources : un dépôt de code, un dossier de notes, une base de données locale, un navigateur que vous automatisez. Le local est aussi le meilleur terrain pour les prototypes, car vous pouvez modifier le serveur et le relancer en quelques secondes, sans pipeline de déploiement.

Scénarios d’équipe et de production

Optez pour le distant lorsqu’un outil appartient à l’équipe : systèmes de tickets, bases de connaissances internes, ressources de design partagées, données de facturation. L’authentification centralisée et les journaux d’audit comptent davantage que de grappiller quelques millisecondes. Le distant est aussi le seul choix lorsque le client ne peut pas lancer de processus, ce qui est le cas de la plupart des assistants web et des applications mobiles.

Déployez par étapes. Commencez par un serveur distant en lecture seule pour que chacun puisse l’essayer sans risque, ajoutez les outils d’écriture une fois que le journal d’audit semble sain, et gardez un interrupteur d’arrêt d’urgence qui révoque les jetons en une seule étape. Les équipes qui sautent cet ordre finissent généralement par découvrir leurs erreurs grâce à un message en colère plutôt qu’à un tableau de bord.

Deux collègues devant un tableau blanc, dessinant un schéma de système dans une salle de réunion lumineuse

Une liste de contrôle rapide pour décider

Répondez à ces questions dans l’ordre et arrêtez-vous à la première réponse « oui » :

  1. L’outil a-t-il besoin de fichiers, d’un shell ou de matériel sur cette machine précise ? Optez pour le local.
  2. Plus d’une personne ou d’un appareil l’utilisera-t-il ? Optez pour le distant.
  3. A-t-il besoin d’un GPU, d’un grand index ou d’une tâche longue durée ? Optez pour le distant.
  4. Doit-il fonctionner hors ligne ? Optez pour le local.
  5. Contient-il des données qui doivent être auditées par utilisateur ? Optez pour le distant.
  6. Toujours indécis ? Commencez en local, puis passez au distant quand arrive le deuxième utilisateur.

Configurations hybrides à envisager

Les projets réels choisissent rarement une seule option. Ces schémas reviennent sans cesse :

  • Proxy local vers un serveur distant. Un petit processus stdio transmet les messages à une URL hébergée, de sorte que les clients qui ne parlent que stdio puissent tout de même atteindre un outil distant.
  • Local pour le développement, distant pour la production. Le même code d’outil derrière deux transports. La plupart des SDK permettent de basculer d’une seule ligne.
  • Une passerelle placée devant. Un point d’accès distant unique qui répartit les requêtes vers plusieurs serveurs internes, avec une connexion et une journalisation communes.
  • Répartition selon la sensibilité des données. Les fichiers privés passent par un serveur local, les services partagés par un serveur distant.

Vue par-dessus l’épaule d’un développeur tapant sur un ordinateur portable à une table de café, près d’une fenêtre pluvieuse

C’est dans un café à la connexion instable que l’hybride se révèle utile. Les outils de fichiers continuent de tourner localement pendant que les outils hébergés réessaient en arrière-plan, et rien de sensible ne quitte votre machine, sauf si vous en décidez autrement.

3 erreurs courantes

  1. Héberger à distance un outil purement local. Un serveur qui lit /Users/me/notes n’a aucun sens sur une machine dans le cloud. Si les données se trouvent sur votre ordinateur portable, le serveur doit être sur votre ordinateur portable.
  2. Mettre en production un serveur distant sans authentification. Les points d’accès « ce n’est qu’un prototype » restent en ligne pendant des mois. Ajoutez la connexion avant le premier appel externe, pas après le premier incident.
  3. Écrire les journaux sur stdout. Avec stdio, cela casse le protocole et le client signale une vague erreur d’analyse. Envoyez les journaux sur stderr.

Créez vos visuels ensuite

Quel que soit le transport choisi, le bénéfice est le même : un assistant d’IA qui fait un vrai travail pour vous au lieu de seulement en parler. Une connexion distante est le moyen le plus rapide de le ressentir, car il n’y a rien à installer et rien à faire tourner en permanence.

Commencez par les images. PicassoIA Image transforme un prompt en langage courant en image finie en quelques secondes, avec sept formats d’image, une seed verrouillable et aucune limite par image. Rédigez un prompt, générez quelques variations, puis modifiez un seul détail, comme l’objectif, la lumière ou l’angle de la caméra, et observez ce qui change. Cette petite boucle de prompt, résultat et ajustement est l’habitude qui rend chaque outil ultérieur, MCP ou non, plus facile à utiliser.

Si vous écrivez ou relisez vous-même du code de serveur, un modèle de code performant est utile. Claude Sonnet 5, GPT 5.6 Sol, Gemini 3.5 Flash et Kimi K2.6 sont tous disponibles sur PicassoIA, ce qui vous permet de comparer la façon dont chacun gère le même schéma d’outil.

Prêt à essayer ? Ouvrez PicassoIA, choisissez un modèle dans la liste complète des modèles et générez votre première image dès aujourd’hui.

Partager cet article

Choisissez votre langue