LM Studio MCP : exemple de mcp.json et meilleurs serveurs de recherche web
Un fichier mcp.json LM Studio fonctionnel, à copier dès aujourd’hui, expliqué entrée par entrée, ainsi qu’une comparaison côte à côte des meilleurs serveurs MCP pour la recherche web : Brave Search, Tavily, Exa, DuckDuckGo et Fetch. Vous obtenez les noms exacts des packages, les noms des outils, les réglages de jetons et les vérifications de sécurité à effectuer en premier.
Votre modèle local est rapide, privé et pertinent, mais il croit toujours vivre au mois où ses données d’entraînement se sont arrêtées. Demandez à la fenêtre de chat de LM Studio la sortie de la semaine dernière, et vous obtiendrez une supposition formulée avec assurance. La solution tient en un seul fichier JSON. Ajoutez un serveur MCP de recherche web à mcp.json, et le même modèle commence à appeler un outil de recherche, à lire de vraies pages et à répondre en citant ses sources au lieu de puiser dans sa mémoire.
Cet article vous donne un exemple fonctionnel de mcp.json LM Studio MCP à copier dès aujourd’hui, puis compare les cinq serveurs de recherche web les plus utilisés : Brave Search, Tavily, Exa, DuckDuckGo et le serveur officiel Fetch. Chaque configuration ci-dessous provient de la documentation propre à chaque projet : les noms de packages, les variables d’environnement et les noms des outils sont donc les vrais.
Pourquoi les modèles locaux ont besoin de la recherche web
Le problème des connaissances périmées
Un modèle de langage est un instantané. Tout ce qu’il savait le jour où son entraînement s’est terminé est tout ce qu’il saura jamais, peu importe le temps qu’il passe allumé sur votre bureau. C’est suffisant pour reformuler un e-mail ou expliquer une expression régulière. C’est pénible pour tout ce qui évolue : versions des bibliothèques, prix, notes de version, le message d’erreur de la mise à jour du mois dernier.
Coller des pages web à la main dans le chat fonctionne, mais cela consomme votre fenêtre de contexte et votre patience. Un outil de recherche permet au modèle de décider lui-même quand il a besoin de faits récents, de les récupérer et de les intégrer à sa réponse.
Ce que fait MCP en pratique
Le Model Context Protocol (MCP) est une norme qui permet à une application de connecter un modèle à des outils externes. LM Studio joue le rôle d’hôte : il démarre ou se connecte à chaque serveur listé dans votre configuration, demande quels outils ils proposent et transmet les descriptions de ces outils au modèle. Lorsque le modèle décide d’en appeler un, LM Studio l’exécute et renvoie le résultat dans la conversation.
💡 Vous n’écrivez aucun code pour cela. Un serveur de recherche est un petit programme maintenu par quelqu’un d’autre. Votre seul travail consiste à indiquer à LM Studio comment le lancer.
Le support MCP est arrivé avec LM Studio 0.3.17, et l’application suit la notation de Cursor pour mcp.json. Cela compte, car la plupart des README de serveurs montrent un extrait pour Cursor ou Claude Desktop, et ces extraits se collent avec peu ou pas de modifications.
Où se trouve mcp.json
Dans l’application, ouvrez l’onglet Program dans la barre latérale de droite, cliquez sur Install, puis choisissez Edit mcp.json. L’éditeur intégré est la voie la plus sûre, car vous voyez les erreurs au fur et à mesure que vous tapez.
Si vous préférez modifier le fichier directement, voici les chemins :
Système
Chemin du fichier
macOS
~/.lmstudio/mcp.json
Linux
~/.lmstudio/mcp.json
Windows
%USERPROFILE%/.lmstudio/mcp.json
Après l’enregistrement, consultez l’onglet Program : chaque serveur du fichier doit y apparaître avec ses outils. Certains auteurs de serveurs MCP publient aussi un bouton Add to LM Studio qui écrit l’entrée à votre place, pratique lorsqu’un serveur a une configuration longue.
Un exemple de mcp.json fonctionnel
Chaque entrée se trouve dans un unique objet de premier niveau appelé mcpServers. Chaque serveur reçoit un nom que vous choisissez, suivi soit d’un url (un serveur distant), soit d’un command (un processus local).
Entrée pour un serveur distant
La documentation officielle de LM Studio utilise le serveur MCP de Hugging Face comme exemple distant :
Trois détails comptent ici. url pointe vers le serveur hébergé. headers transporte vos identifiants. Et l’espace réservé entre chevrons doit être remplacé par un vrai jeton avant que le serveur accepte la connexion.
Serveur local avec npx
Les serveurs locaux utilisent command, args et env. Voici l’extrait fourni par Brave lui-même pour son serveur MCP Brave Search :
npx est livré avec Node.js, installez donc celui-ci en premier. L’option -y ignore l’invite de confirmation qui bloquerait sinon un processus en arrière-plan, et --transport stdio indique au serveur de communiquer avec LM Studio par l’entrée et la sortie standard. Le bloc env transmet votre jeton au serveur sous forme de variable d’environnement, ce que presque tous les serveurs de recherche attendent.
Plusieurs serveurs dans un même fichier
Un fichier réaliste combine plusieurs sources : Brave pour la recherche générale, Fetch pour lire une page en entier, et DuckDuckGo comme solution de repli qui ne nécessite pas de compte.
uvx provient de l’outil Python uv, donc les deux serveurs Python ont besoin d’uv installé, de la même façon que le serveur Node a besoin de Node.
💡 Deux virgules provoquent plus de configurations cassées que tout le reste : une virgule manquante entre deux serveurs et une virgule finale après le dernier. JSON n’accepte ni l’une ni l’autre, et il n’autorise pas non plus les commentaires.
Meilleurs serveurs MCP pour la recherche web
Les serveurs de recherche remplissent trois fonctions différentes : trouver des liens, renvoyer le texte propre d’une page et lire une URL précise. Les meilleures configurations associent un outil de recherche à un outil de lecture, au lieu de demander à un seul serveur de tout faire.
Serveur MCP Brave Search
Brave est le choix par défaut pour la plupart des gens. Le package est @brave/brave-search-mcp-server, le jeton va dans BRAVE_API_KEY, et la liste des outils est large : brave_web_search, brave_local_search, brave_video_search, brave_image_search, brave_news_search, brave_summarizer, brave_place_search et brave_llm_context.
Brave renvoie des résultats bruts classés (liens et extraits) et laisse votre modèle local faire la lecture. Cela garde les réponses courtes, ce qui compte lorsque votre fenêtre de contexte est limitée. Le dépôt indique que les offres Pro ajoutent des extras comme des extraits supplémentaires et la recherche locale complète.
Serveur MCP Tavily
Tavily privilégie l’extraction. Ses outils sont tavily-search, tavily-extract, tavily-map et tavily-crawl, afin que le modèle puisse chercher, extraire le texte d’une page, cartographier un site ou l’explorer. L’entrée locale ressemble à ceci :
Tavily exploite aussi un serveur distant à l’adresse https://mcp.tavily.com/mcp/?tavilyApiKey=<your-token>. La version locale ci-dessus est la meilleure pratique, car elle garde votre jeton hors d’une URL.
Serveur MCP Exa
Exa est la configuration la plus courte des cinq, puisqu’il est hébergé. Rien à installer, donc ni Node ni Python :
Les outils par défaut sont web_search_exa, qui renvoie des résultats de recherche avec un contenu propre, et web_fetch_exa, qui lit une page au format markdown. Exa accepte un jeton sous forme de paramètre d’URL ou dans un en-tête Authorization. L’en-tête est le choix le plus soigné.
Serveur MCP DuckDuckGo
Aucun compte, aucun jeton. Lancez uvx duckduckgo-mcp-server et vous obtenez search, fetch_content et expand_link. C’est le moyen le plus rapide de vérifier que toute votre configuration fonctionne avant de vous inscrire à quoi que ce soit.
Le compromis, ce sont les limites de débit. Les valeurs par défaut sont 30 recherches par minute et 20 récupérations de pages par minute, modifiables avec les variables d’environnement DDG_SEARCH_RPM et DDG_FETCH_RPM. En cas de réponse HTTP 429, le serveur respecte Retry-After et réessaie une fois.
Serveur MCP Fetch
Fetch provient du dépôt officiel des serveurs MCP et ne fait qu’une chose : il télécharge une URL et convertit le HTML en markdown. Son outil fetch prend une url, ainsi que max_length facultatif (5000 caractères par défaut), start_index et raw.
Ce paramètre start_index est utile. Lorsqu’une page dépasse la taille d’une seule réponse, le modèle peut demander la tranche suivante au lieu de perdre la fin de l’article. Fetch respecte robots.txt pour les requêtes initiées par le modèle, par défaut, et sa documentation avertit qu’il peut atteindre des adresses IP locales et internes, ce qui constitue un vrai risque sur un ordinateur professionnel.
Trois points de départ conviennent à la plupart des gens :
Un seul serveur : choisissez Brave Search, ou Tavily si le texte des pages vous importe plus que les listes de liens.
Aucun compte : associez DuckDuckGo à Fetch.
Installation minimale : utilisez l’entrée distante d’Exa et évitez complètement Node et Python.
Choisir un modèle capable d’appeler des outils
Tous les modèles ne savent pas appeler des outils. Un modèle doit avoir été entraîné à émettre un appel d’outil structuré, et LM Studio signale les modèles compatibles avec un badge en forme de marteau dans sa liste. Si vous en choisissez un sans ce badge, le modèle parlera de recherche sans jamais vraiment chercher.
Deux réglages comptent autant que le choix du modèle :
Longueur de contexte : les résultats de recherche sont longs. Augmentez la longueur de contexte au chargement du modèle, sinon les résultats seront tronqués avant que le modèle ne les lise.
Taille du modèle : les très petits modèles ont tendance à trébucher sur les usages d’outils en plusieurs étapes, en cherchant une fois puis en répondant à partir d’un extrait mal lu.
Comment utiliser GPT OSS sur PicassoIA
Avant de télécharger un modèle de plusieurs gigaoctets, testez vos prompts sur un modèle hébergé. GPT OSS 20B est un modèle de langage à poids ouverts de 20 milliards de paramètres, et sa page propose des générations illimitées, sans plafond de crédits.
Une limite à reconnaître : ce modèle hébergé fonctionne dans le navigateur et ne se connecte pas à vos serveurs MCP locaux. Utilisez-le pour peaufiner le prompt système et voir comment un modèle résume des résultats de recherche collés, puis reportez le prompt gagnant dans LM Studio.
Rédigez le prompt. Essayez : « Vous êtes un assistant de recherche. En vous appuyant uniquement sur les résultats de recherche ci-dessous, répondez en cinq puces et citez l’URL source de chacune. » Collez de vrais résultats de recherche en dessous.
Gardez une température basse. La valeur par défaut est 0,1, ce qui convient aux résumés factuels. Augmentez-la seulement pour faire du brainstorming.
Vérifiez les limites. Le nombre maximal de tokens est fixé à 2048 par défaut, top p à 1, et les deux pénalités à 0. Ajoutez une petite pénalité de présence ou de fréquence si la réponse se met à boucler.
Générez et comparez. Lancez la génération, modifiez une ligne, relancez. Gardez la version qui suit votre format sans dériver.
Reportez-la. Collez le texte gagnant dans votre prompt système LM Studio.
Réglage
Valeur par défaut
À utiliser pour
Température
0,1
Résumés précis et reproductibles
Top P
1
Diversité des réponses
Max Tokens
2048
Longueur de la réponse
Pénalité de présence
0
Inciter à aborder de nouveaux sujets
Pénalité de fréquence
0
Réduire les mots répétés
D’autres modèles hébergés valent la peine d’être soumis au même test : GPT OSS 120B, Qwen3.7-Plus, Granite 4.1 8B et Kimi K2.6. Si l’un d’eux suit mieux votre format, vous savez ce qu’il faut chercher dans un téléchargement local.
Règles de sécurité avant l’installation
La documentation de LM Studio est franche sur ce point : certains serveurs MCP peuvent exécuter du code arbitraire, lire vos fichiers locaux et utiliser votre connexion réseau. N’en installez jamais un provenant d’une source que vous ne connaissez pas. Un serveur de recherche n’est qu’un programme qui tourne sur votre machine avec vos droits.
Relire chaque appel d’outil
Lorsqu’un modèle appelle un outil, LM Studio affiche une boîte de dialogue de confirmation. Vous pouvez relire et modifier les arguments avant toute exécution, puis autoriser l’outil une seule fois ou de façon permanente. Restez sur « autoriser une fois » pour tout serveur qui touche aux fichiers ou au réseau, tant que vous ne lui faites pas confiance. Les autorisations permanentes se gèrent dans App Settings > Tools & Integrations.
Protéger vos jetons
Votre mcp.json stocke les jetons en clair : traitez-le donc comme une liste de mots de passe.
Ne le versionnez jamais dans Git et ne le collez jamais dans un message de forum ou une capture d’écran.
Privilégiez env et headers aux jetons placés dans les URL, qui finissent souvent dans les journaux.
Révoquez immédiatement un jeton qui a fuité.
Réfléchissez-y à deux fois avant d’exécuter Fetch sur une machine capable d’atteindre des pages d’administration internes.
Résoudre les problèmes de configuration courants
La plupart des échecs entrent dans cinq catégories :
JSON cassé. Vérifiez les virgules, les guillemets et les crochets. Sous Windows, tout chemin de fichier dans le JSON doit avoir des barres obliques inverses doublées, ou utilisez des barres obliques normales.
Environnement d’exécution manquant.npx a besoin de Node.js et uvx a besoin d’uv. Lancez node --version ou uv --version dans un terminal pour le confirmer.
Le modèle ignore vos outils. Le modèle n’est peut-être pas compatible avec les outils, ou le prompt est trop vague. Ajoutez une ligne au prompt système : « Utilisez l’outil de recherche pour tout ce qui est plus récent que vos données d’entraînement. »
Résultats vides ou bridés. DuckDuckGo limite les recherches à 30 par minute par défaut, et les API payantes ont leurs propres quotas. Demandez au modèle de chercher une fois, puis de lire.
Pages tronquées. Fetch renvoie 5000 caractères par défaut. Demandez la tranche suivante avec start_index, ou augmentez max_length.
💡 Testez chaque nouveau serveur seul, d’abord. Ajoutez une seule entrée au fichier, posez une question qui exige des faits récents et observez l’appel d’outil. N’ajoutez le serveur suivant qu’une fois que cela fonctionne.
Créez vos propres images sur PicassoIA
Une fois que votre configuration locale effectue des recherches sur le web, vous voudrez des visuels pour les articles, tutoriels et notes qui en découlent : un en-tête pour votre article de blog, un fond de schéma, une miniature pour une vidéo explicative. C’est là que PicassoIA intervient.
Tentez une expérience : rédigez un seul prompt photographique, par exemple « le bureau d’un développeur à l’aube avec un ordinateur portable et un carnet de boîtes dessinées à la main », puis lancez-le sur trois modèles de texte vers image. Flux Krea Dev privilégie des images qui évitent l’aspect habituel de l’IA, Seedream 4.5 produit des résultats nets et en haute résolution, et GPT Image 2 suit de près les prompts longs et détaillés. Placez les trois résultats côte à côte et gardez celui qui convient.
PicassoIA propose aussi une API pour développeurs et des connexions MCP pour ses modèles d’image et de vidéo, afin que le même flux de travail puisse plus tard se brancher sur vos propres outils. Ouvrez PicassoIA, choisissez un modèle et créez votre première image dès aujourd’hui.