MCP

MCPSurfr : serveur MCP de recherche web locale sans clé API — guide de choix et de prise en main

Idéal pour ajouter à un client LLM local compatible MCP une recherche web sans clé API et une recherche approfondie multi-moteurs, les résultats étant reclassés sur votre machine par MobileBERT ; il faut un client capable de lancer le serveur via uvx depuis GitHub.

Official source · MCPSurfr

Install

"command": "uvx",
        "args": ["--from", "git+https://github.com/nkapila6/mcpsurfr", "mcpsurfr"]

À qui il s'adresse

MCPSurfr (anciennement mcp-local-rag) est un serveur MCP de recherche web locale destiné aux LLM : aucune clé API n'est nécessaire et les résultats sont reclassés sur votre propre machine, le classement étant assuré par un petit modèle MobileBERT exécuté directement sur numpy. Il convient à deux profils : ceux qui veulent ajouter la recherche web à un client compatible MCP sans souscrire à un service de recherche ni gérer de clés ; et les workflows d'agents qui ont besoin de capacités progressivement plus profondes, de la consultation ponctuelle de passages au texte de pages entières, puis à la recherche approfondie multi-moteurs.

Clarifions les prérequis : il vous faut un client prenant en charge les serveurs MCP personnalisés et une machine capable d'exécuter la commande uvx — la voie de lancement officielle est unique : récupérer le serveur depuis GitHub via uvx. La page officielle ne précise pas si un service hébergé ou une interface graphique est proposé, et ne liste ni les systèmes d'exploitation requis ni les clients compatibles ; si votre environnement n'autorise pas la récupération et l'exécution de code depuis GitHub, cette voie principale est impraticable.

Premier essai en 3 minutes

La voie principale recommandée est unique, et la commande comme la configuration viennent de la documentation officielle.

Prérequis : uvx doit pouvoir s'exécuter sur la machine, et le client doit prendre en charge la configuration des serveurs MCP par command/args. Première étape, insérez l'extrait officiel dans la configuration des serveurs MCP du client (l'emplacement exact varie selon le client) :

"command": "uvx",
        "args": ["--from", "git+https://github.com/nkapila6/mcpsurfr", "mcpsurfr"]

Deuxième étape, enregistrez la configuration et rechargez la session ; le client lance mcpsurfr avec cette commande. Au premier démarrage, le code doit être récupéré depuis GitHub via le réseau ; la durée et le comportement du cache ne sont pas documentés officiellement.

Troisième étape, appelez l'outil search avec une requête ordinaire. Il s'agit d'une consultation ponctuelle définie officiellement, qui renvoie des passages pertinents — une opération de type requête ; mais l'appel déclenche une véritable recherche web et exécute le reclassement localement — « requête » signifie seulement qu'aucune écriture n'est effectuée, pas qu'il n'y a ni requêtes réseau ni enjeux de confidentialité.

Signaux de succès : l'outil renvoie des passages pertinents pour la requête et la liste d'outils du client affiche, outre search, rag_search_ddgs, rag_search_google, deep_research, deep_research_ddgs et deep_research_google. Le serveur fournit aussi la ressource de compétence skill://mcpsurfr-search/SKILL.md, dont l'usage précis n'est pas détaillé sur la page officielle.

Cas d'usage

Cas 1 : ajouter une consultation rapide aux conversations. Scénario : vous discutez dans le client d'un sujet susceptible d'avoir évolué récemment et laissez le modèle appeler d'abord search. Il effectue une consultation ponctuelle et renvoie des passages pertinents que le modèle peut citer directement ; comme aucune clé API n'est nécessaire, intégrer l'outil dans un nouvel environnement n'exige aucune inscription à un service de recherche. Ce qui est confirmé s'arrête au renvoi des passages ; le découpage et le classement des passages ne sont pas documentés officiellement.

Cas 2 : récupérer le texte de pages entières pour structurer un sujet. Scénario : quand les passages ne suffisent pas et qu'un contexte plus complet est nécessaire, appelez rag_search_ddgs ; officiellement, il renvoie des pages entières en texte — c'est le mode d'origine du projet. Attention : un appel renvoie au maximum 40 000 caractères, ajustables via la variable d'environnement MCPSURFR_MAX_CHARS. Les paramètres précis de chaque outil ne sont pas donnés un à un officiellement ; fiez-vous à la description des outils introspectée par votre client. La façon dont la série deep_research orchestre une recherche en plusieurs étapes n'est pas détaillée sur la page officielle — n'en supposez pas le déroulé de vous-même.

Limites d'utilisation

Nature lecture/écriture : les six outils sont des capacités de consultation ou de recherche ; la page officielle ne décrit aucune opération écrivant dans des fichiers locaux ou soumettant à distance. C'est une description de périmètre, pas une conclusion de sécurité — chaque appel déclenche une véritable recherche web et reclasse les résultats localement avec MobileBERT (numpy).

Identifiants et dépendances locales : l'argument officiel est l'absence de clé API ; la nécessité éventuelle d'un compte, de jetons ou de fichiers de données locaux n'est pas mentionnée — à traiter comme non confirmé.

Effets de bord et points de confirmation : l'installation récupère et exécute du code depuis GitHub via uvx ; c'est un comportement inhérent à la configuration officielle — acceptez-le avant de l'inscrire dans votre configuration. Au-delà, la page officielle ne décrit aucun autre effet de bord ni action à confirmer.

Limites officielles et points non confirmés : les outils « pages entières » renvoient au maximum 40 000 caractères par appel, ajustables via la variable d'environnement MCPSURFR_MAX_CHARS. Restent non confirmés : la liste des clients compatibles, la disponibilité et les quotas de chaque backend de recherche, le coût en performances et la possibilité d'un déploiement distant. Vérifiez ces points dans votre propre environnement avant d'en faire un critère de choix.