Lien de LM Studio avec les serveurs MCP pour les fichiers, GitHub et un navigateur.
Des configurations mcp.json étape par étape qui permettent à un modèle local d’utiliser le système de fichiers, les outils GitHub OAuth et Playwright, avec des choix de modèles et des corrections pour les erreurs courantes.
Sources: Connect LM Studio to MCP Servers: Filesystem, GitHub, and Browser Control (3 Working Configs)
Les modèles qui s’exécutent entièrement sur votre propre machine peuvent désormais appeler des outils réels au lieu de simplement en parler. Connecter un modèle local à quelque chose comme GitHub signifiait autrefois de créer manuellement un token d’accès personnel en espérant qu’il se trouve dans le bon champ JSON. La plupart de ces difficultés ont disparu. LM Studio peut être connecté à trois serveurs MCP, pour le système de fichiers, GitHub et le contrôle du navigateur, avec une configuration fonctionnelle pour chacun.
Prérequis
Quelques éléments doivent être en place avant de modifier mcp.json.
LM Studio 0.4.10 ou une version ultérieure. C’est la version qui a ajouté le support OAuth pour les serveurs MCP, et elle couvre également confortablement la version 0.3.17, date à laquelle LM Studio est devenu pour la première fois un hôte MCP. Les mises à jour arrivent fréquemment, avec plusieurs versions mineures par mois ces derniers temps, donc il est le plus simple de télécharger la version actuelle.
Un modèle capable d’émettre des appels d’outils. Tous les modèles locaux ne le font pas de manière fiable. Pour une GPU dotée de 20 Go de mémoire vidéo, il existe trois bonnes options :
- Qwen3-Coder-30B-A3B-Instruct compte 30 milliards de paramètres au total, mais seulement environ 3,3 milliards sont actifs par token en raison de sa conception MoE. En mode 4 bits, il nécessite environ 17 à 20 Go et offre une fenêtre de contexte de 262 K.
- gpt-oss-20b occupe moins d’espace, environ 14 Go, et est nettement plus rapide, ce qui est avantageux lorsque la carte est partagée avec d’autres applications.
- Qwen3.5-9B est le plus léger : il s’agit d’un modèle dense de 9 milliards de paramètres nécessitant environ 6 Go en format 4 bits, ce qui permet à une carte de gamme intermédiaire d’avoir amplement de marge. Il partage le contexte natif de 262 K du modèle Coder, exécute les outils directement avec une note BFCL-V4 satisfaisante, et c’est le modèle affiché dans les captures d’écran ci-dessus. C’est un bon point de départ si l’on ne sait pas si la carte peut gérer les deux modèles plus volumineux.
Les modèles de base non ajustés pour les instructions ou les conversations ne produiront généralement pas du tout d’appels structurés aux outils. Si une fiche de modèle ne mentionne pas l’utilisation d’outils ou les appels de fonctions, choisissez plutôt une version prévue pour les instructions.
Node.js 18 ou ultérieur. Le serveur de système de fichiers ainsi que le serveur de contrôle du navigateur s’exécutent tous deux via npx. Vérifiez d’abord la version :
node --version
Tout ce qui commence par v18 ou une version supérieure fonctionne. Si la commande n’est pas trouvée, Node n’est pas installé, et npx n’existera pas non plus. Une deuxième vérification rapide concerne npx lui-même :
npx --version
Il est fourni avec Node, donc il passe presque toujours le premier test, mais il s’agit d’un test de base peu coûteux avant de s’appuyer sur lui pour les configurations du système de fichiers et du navigateur.
Rien de tout cela ne confirme la version propre à LM Studio. La barre de titre en haut de l’application l’indique, et elle doit afficher 0.4.10 ou une version ultérieure.
L’image capturée ci-dessus montre une installation indiquant 0.4.23 dans la barre de titre, qui était la version actuelle à ce moment-là.
Ouverture du fichier de configuration
Ouvrez l’onglet Intégrations dans la barre latérale droite de LM Studio, cliquez sur Installer, puis sur Modifier mcp.json. C’est l’éditeur où chaque serveur a sa propre entrée.
Configuration 1 : système de fichiers
Avec cette fonctionnalité, découvrir le contenu d’un dossier n’est plus une tâche fastidieuse nécessitant copier-coller, mais devient simplement une requête unique. Le serveur de système de fichiers officiel permet au modèle de lire, écrire, rechercher et lister des dossiers, mais uniquement dans les chemins que vous autorisez.
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/you/projects"
]
}
}
}
Remplacez /Users/you/projects par le dossier que le modèle doit explorer. D’autres chemins peuvent être ajoutés. Tout ce qui se trouve en dehors d’eux reste caché pour le modèle, et c’est justement cette restriction qui est visée. Deux éléments de l’entrée sont importants :
commandetargscorrespondent à l’exécution denpx -y @modelcontextprotocol/server-filesystemsuivi du répertoire autorisé, géré comme un sous-processus par LM Studio.- L’argument
allowed-directorydéfinit les limites complètes de ce que le modèle peut atteindre. Un projet couvrant plusieurs dossiers peut les lister un par un.
Après enregistrement, LM Studio détecte la nouvelle entrée. Chargez un modèle qui prend en charge les appels d’outils (Qwen 3.5 9B convient), commencez une nouvelle conversation et activez mcp/filesystem dans la barre latérale.
Un bon premier test consiste à demander au modèle de trouver un fichier TODO.md dans le dossier des projets et de résumer les tâches restantes. Le modèle exécute automatiquement les fonctions list_directory et read_file. Avant chaque exécution, LM Studio affiche une boîte de dialogue de confirmation ; il est judicieux de les lire attentivement, car un modèle local disposant d’accès en écriture sur le disque ne devrait pas fonctionner sans surveillance.
Configuration 2 : GitHub
Cette configuration nécessite LM Studio 0.4.10 ou une version ultérieure. L’endpoint MCP distant de GitHub ne dispose pas de la fonctionnalité d’enregistrement dynamique du client, qui permet normalement à un client de s’inscrire automatiquement pour OAuth. Par conséquent, il faut d’abord créer manuellement une application OAuth. LM Studio n’est pas différent à cet égard, car VS Code et la CLI Copilot de GitHub rencontrent la même limitation. La configuration prend environ deux minutes :
- Ouvrez github.com/settings/developers, sélectionnez OAuth Apps et cliquez sur New OAuth App.
- Entrez n’importe quel nom et l’URL de la page d’accueil, car ils ne sont pas importants ici. Définissez Redirect URI sur exactement
http://127.0.0.1:33389/mcp-oauth-callback. - Cliquez sur Register application, puis sur generate a new client secret à la page suivante. Conservez l’ID du client et le secret en lieu sûr, car ce dernier n’est affiché qu’une seule fois.
Avec ces deux valeurs en main, la configuration ressemble à ceci :
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"auth": {
"CLIENT_ID": "<your Client ID>",
"CLIENT_SECRET": "<your client secret>"
}
}
}
}
Enregistrez le fichier, activez le serveur, puis appuyez sur Authenticate, suivi de Trust, and Open in Browser. Une fenêtre du navigateur s’ouvre sur la page OAuth de GitHub. Une fois l’accès accordé via Authorize <username> en bas de page, le jeton est stocké comme pour n’importe quel autre serveur géré par OAuth.
La page de consentement de GitHub ne propose que l’option d’approuver ou de refuser, sans possibilité de sélectionner des plages d’accès. Un contrôle plus fin se trouve plutôt à l’intérieur de LM Studio. Ouvrez le panneau Integrations et trouvez la liste des outils appartenant au serveur mcp/github. Chaque outil qu’il expose est listé séparément, parmi lesquels create_pull_request, delete_file, push_files et merge_pull_request, ainsi que des dizaines d’autres ; chacun dispose d’une case à cocher et d’un interrupteur pour demander ou autoriser l’accès.
Cette liste mérite une attention particulière. Désactivez tout ce que le modèle ne devrait pas toucher ; delete_file et push_files sont évidemment les premiers candidats si l’objectif se limite à la lecture et à la synthèse.
Dans l’écran d’affichage final de ce groupe, get_me a été appelé une fois et search_repositories deux fois sur GitHub en direct, avec un filtrage correct selon les dates de création et de mise à jour. Les outils en lecture seule ainsi que les dépôts du modèle lui-même restent cochés, tandis que des outils destructeurs tels que delete_file et push_files sont décochés.
Config 3 : contrôle du navigateur
Cette configuration permet à un modèle local d’examiner une page web en direct plutôt que de se fier aux données d’entraînement. Le serveur MCP Playwright exécute un véritable navigateur et fournit du contenu structuré de la page à la place d’écrans capturés, ce qui permet même à un petit modèle local de naviguer et d’extraire du texte de manière fiable.
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--headless"
]
}
}
}
Deux choses à savoir avant de le coller ici. Par défaut, le serveur ouvre une fenêtre du navigateur visible, appelée mode tête affichée, et le flag --headless dans la configuration désactive cette fonctionnalité. Sur une machine équipée d’un écran, en supprimant ce flag, vous pouvez suivre en direct les clics du modèle, ce qui est pratique lorsque le sélecteur ne fonctionne pas correctement. Node 18 ou une version plus récente est également requis, tout comme pour la Configuration 1 ; la première exécution pourrait proposer de télécharger des binaires de navigateur via npx playwright install si ceux-ci manquent.
Un test simple consiste à demander au modèle d’ouvrir la page d’accueil de Hacker News et de résumer les cinq articles les plus populaires. Il exécute d’abord browser_navigate, puis lit l’arbre d’accessibilité de la page pour identifier les titres et les liens, sans recourir à un modèle visuel ni à l’analyse d’captures d’écran au cours du processus.
L’automatisation des navigateurs qui résiste délibérément au fingerprinting, à des fins de recherche ou de travail de type OSINT, relève d’une tâche différente. Les serveurs basés sur Camoufox, comme Camofox-MCP, couvrent ce cas. Cette configuration constitue la référence générale.
Résolution de problèmes
Ces sont les problèmes les plus probables, classés approximativement du plus fréquent au moins fréquent.
Le modèle ne lance jamais d’appels à des outils. La cause habituelle est un modèle de base ou de complétion chargé à la place d’un modèle adapté aux instructions ou au chat. Lisez la fiche du modèle ; si l’utilisation d’outils ou les appels de fonctions n’y sont pas mentionnés, remplacez-le. Qwen 3.5 9B est un excellent choix local pour les appels à des outils.
Le serveur n’apparaît pas dans la barre latérale du chat après une modification de mcp.json. Rechargez d’abord la liste des serveurs depuis l’onglet Programme, et si cela ne fonctionne pas, redémarrez complètement LM Studio. Un fichier modifié directement sur le disque, et non dans l’éditeur intégré à l’application, semble plus susceptible de nécessiter ce redémarrage.
JSON des appels d’outils corrompu ou arguments inventés. Baissez la température d’échantillonnage, car les appels d’outils font partie des rares tâches où une configuration trop créative nuit aux résultats. Vérifiez également que la longueur du contexte est d’au moins 4096 tokens. Les schémas des outils consomment rapidement le contexte, surtout ceux de GitHub, et une fenêtre trop restreinte est une cause cachée fréquente d’appels tronqués.
Résultat final
Le résultat est trois serveurs, aucune appel API et un modèle local capable de lire le système de fichiers, de travailler sur un véritable dépôt GitHub et de faire fonctionner un navigateur en temps réel, chaque appel étant vérifié et approuvé via les dialogues de confirmation de LM Studio, sans qu’aucun ne fonctionne sans surveillance.
Ce dernier constitue déjà un agent local utile, et il sert de base à un flux de travail entièrement autonome. La prochaine étape logique consiste à regrouper ces trois serveurs en un seul cycle d’agent, plutôt que de les gérer chacun avec des instructions distinctes.
Documents de référence
Les documents de LM Studio concernant l’utilisation des serveurs MCP ainsi que les intégrations MCP avec OAuth définissent les structures command, args, url et auth utilisées partout. Le dépôt du serveur MCP de GitHub et la documentation de configuration de GitHub couvrent Config 2, le serveur de système de fichiers officiel modelcontextprotocol couvre Config 1, tandis que le dépôt microsoft/playwright-mcp décrit le comportement par défaut avec en-tête et les paramètres de Config 3.