Mettre en place un serveur MCP pour l'extraction de données Web en temps réel
All Posts

Mettre en place un serveur MCP pour l'extraction de données Web en temps réel

Ryan Turner
Ryan Turner · Head of Growth

Un serveur MCP permet à tout agent compatible MCP d'appeler vos outils de données Web via un protocole standard. Pour l'extraction en temps réel, vous exposez un aller chercher ou recherche outil dont le backend récupère des pages en temps réel et renvoie des données épurées et structurées, accompagnées des URL sources. Ainsi, l'agent n'intervient jamais au niveau du protocole HTTP, de la rotation d'adresses IP ou de l'analyse syntaxique du HTML. Il appelle une fonction nommée et reçoit en retour du code Markdown.

C'est justement cette séparation qui fait toute la différence. La logique de votre modèle reste simple. La partie complexe, qui consiste à récupérer une page non structurée et à la transformer en un format lisible par un grand modèle de langage (LLM), se déroule entièrement au sein d'un outil que vous contrôlez.

Points à retenir
  • Un serveur MCP met à la disposition des clients MCP des outils nommés (fonctions associées à des schémas) ; pour les données Web, les deux que vous utilisez généralement sont extract_page(url) et recherche(requête).
  • Le serveur de référence officiel de MCP Fetch récupère déjà une URL et convertit le code HTML en Markdown, ce qui vous offre un point de départ opérationnel.
  • Faites passer la requête par une API de rendu et un réseau de sortie sur un appareil réel ; les requêtes provenant d'adresses IP de serveurs sont bloquées, et en 2025, les robots automatisés représentaient 51 % du trafic Web, ce qui explique que les mesures de défense soient très strictes.
  • Renvoyez du Markdown, et non du code HTML brut. Cela réduit considérablement le coût en jetons de l'agent et permet de continuer à analyser les réponses.
  • Veillez à toujours inclure les URL sources avec le contenu afin que l'agent (et votre journal d'audit) puisse attribuer chaque mention.

Qu'est-ce qu'un serveur MCP, et quels services propose-t-il ?

Un serveur MCP est un programme qui met à la disposition des clients MCP, via le protocole Model Context Protocol, des outils sous forme de fonctions nommées dotées de schémas de données d'entrée et de sortie typés. Des clients tels que Claude, Cursor ou votre propre agent détectent ces outils au moment de la connexion et les appellent comme s'il s'agissait de fonctions locales. Pour replacer cela dans son contexte, Gartner prévoit que 40 % des applications d'entreprise intégreront des agents IA dédiés à des tâches spécifiques d'ici fin 2026 (Gartner, D'ici 2026, 40 % des applications d'entreprise intégreront des agents IA spécialisés dans des tâches spécifiques(2025), il est donc important de bien définir les limites de l'outil.

Un outil (dans MCP) se compose de trois éléments : un nom, un schéma d'entrée et un schéma de sortie. Pour l'extraction Web, votre contrat pourrait être extract_page(url : chaîne de caractères) -> markdown et search(query: string) -> results[]. L'agent ne voit que ces signatures. Tout ce qui concerne la manière dont vous récupérez, réessayez et nettoyez la page reste caché derrière elles.

Vous n'avez pas besoin de partir de zéro. Le référentiel officiel des serveurs MCP comprend un serveur de référence Fetch qui prend une URL, la récupère et convertit le code HTML en Markdown (modelcontextprotocol/serveurs). Commencez par lire les définitions de ses outils. Elles vous indiquent les formats d'entrée et de sortie à copier, ce qui vous permet de consacrer votre temps au backend plutôt qu'à la mise en place du protocole. Cet article vise à remplacer ce backend par un autre qui ne soit pas bloqué. Pour une vue d'ensemble plus large des normes, le Web agentique et WebMCP aborde l'orientation prise par MCP et la proposition WebMCP côté navigateur.

Pourquoi le backend de récupération est-il plus important que le protocole ?

La couche MCP est la partie la plus simple. Le plus difficile, c'est d'obtenir ne serait-ce qu'une page active, car toute requête brute adressée à l'adresse IP d'un serveur est bloquée. En 2025, les robots automatisés représentaient 51 % de l'ensemble du trafic web ; c'était la première fois en dix ans que les robots dépassaient les humains, les robots malveillants représentant quant à eux 37 % (Imperva, Rapport 2025 sur les robots malveillants(2025). En d'autres termes, les sites ont adapté leurs défenses précisément au type de trafic généré par votre serveur.

La situation s'est aggravée, en particulier pour les agents. Le 1er juillet 2025, Cloudflare a commencé à bloquer par défaut les robots d'indexation basés sur l'IA sur environ 20 % du Web et a lancé une plateforme de paiement à l'indexation (Cloudflare, Cloudflare vient de révolutionner la manière dont les robots d'indexation basés sur l'IA explorent l'Internet dans son ensemble, 2025). Les sites d'information ont suivi la même tendance : environ 79 % des principaux sites d'information bloquent désormais les bots d'entraînement à l'IA, et environ 49 % interdisent expressément l'accès à GPTBot (Press Gazette, Huit des dix plus grands sites d'information au monde bloquent désormais les robots d'apprentissage de l'IA(2025).

Un serveur de récupération MCP classique échoue donc sur les cibles qui comptent. La solution réside dans le chemin de sortie. Par conséquent, acheminez votre requête via une API de rendu sur un réseau de périphériques réels afin que celle-ci apparaisse comme provenant d'un utilisateur réel situé à un emplacement réel, et non d'une plage d'adresses de centre de données qui est immédiatement rejetée.

Comment se procurer l'outil de récupération ?

Définissez d'abord le contrat de l'outil, puis associez son backend à une API de rendu. Votre extrait_page Cet outil prend une URL en entrée et renvoie du code Markdown ainsi que l'URL source. En arrière-plan, il appelle un point de terminaison de rendu qui récupère la page en ligne, exécute le code JavaScript et renvoie directement le code Markdown épuré, de sorte que votre outil n'effectue aucun analyse syntaxique HTML lui-même.

C'est ici que vous effectuez le raccordement Massive API WebRender. Une API de rendu est un service qui récupère une page, exécute son code JavaScript dans un navigateur réel et renvoie le résultat final plutôt que le code source brut. Son point de terminaison « Browsing » accepte format=markdown sous forme de résultat de premier ordre : la page est renvoyée prête pour les modèles de langage de grande capacité (LLM), sans qu'il soit nécessaire de parser le DOM dans le code de votre outil. La requête est traitée via un réseau d'appareils réels comptant environ 1,3 million d'appareils actifs par jour dans plus de 195 pays ; l'adresse IP de sortie correspond donc à un véritable appareil grand public, et non à une plage de serveurs signalée. Par exemple, vous pouvez effectuer un ciblage géographique par pays, subdivision ou ville lorsqu’une page s’affiche différemment selon la région, et maintenir une session persistante jusqu’à 12 minutes sur la même sortie avec un Cookie : session=<id> En-tête pour les flux en plusieurs étapes.

D'après nos tests auprès des fournisseurs, le taux de réussite des adresses IP résidentielles sur les sites protégés est généralement bien supérieur à celui des adresses IP de centres de données (fourchettes approximatives : résidentielles ~85-99 %, centres de données ~20-40 %). Considérez cela comme une référence fournie par le fournisseur, et non comme une étude indépendante. Cela explique néanmoins une tendance que nous observons souvent : les équipes y ont recours en tant que solution de secours, puis la font passer au premier plan dès qu’elles constatent une baisse du taux de blocage.

Renvoyez des données structurées, et non un blob. Chaque extrait_page La réponse doit contenir le corps au format Markdown et l'URL source résolue afin que l'agent puisse attribuer la source et que vos journaux puissent effectuer un audit. Pour un outil de type moteur de recherche, le point de terminaison « Search » récupère les résultats SERP des principaux moteurs de recherche, avec une fonctionnalité de ciblage géographique, ce qui permet à votre recherche(requête) une véritable découverte dynamique plutôt qu'une liste d'URL figées.

Pourquoi renvoyer du Markdown plutôt que du code HTML brut ?

Il est préférable d'utiliser le Markdown, car cela coûte bien moins de tokens à l'agent que le HTML brut et reste lisible. Le HTML brut se compose principalement de balises, de scripts et de styles dont le modèle n'a pas besoin. La conversion en Markdown élimine ces éléments superflus et réduit considérablement le nombre de tokens, de plus de la moitié sur les pages classiques (dev.to, Outils de navigation pour les agents IA, 4e partie : Passer outre le navigateur(2026). Moins il y a de jetons, plus le coût est faible et plus les réponses sont rapides à chaque appel de fonction.

Il y a également une raison liée à la qualité. Les modèles fonctionnent mieux avec des titres et des listes Markdown bien structurés qu’avec un enchevêtrement de balises `div` imbriquées. Concrètement, cela vous permet d’utiliser moins de tokens tout en obtenant une extraction plus fiable. Les compromis liés au Markdown, ainsi que les gains réels qu’il permet d’obtenir, sont abordés dans contourner le navigateur pour réduire les coûts liés aux jetons d'agent, qu'il est utile de lire avant de choisir un format de sortie.

Étant donné que l'API Web Render renvoie format=markdown En effet, votre outil MCP effectue la conversion en arrière-plan, et non dans le contexte de l'agent. Par conséquent, l'agent reçoit un code Markdown déjà traité et consacre son budget de jetons au raisonnement, et non à l'analyse d'un code mal structuré.

Comment tester l'outil depuis un agent ?

Testez en connectant le serveur à un véritable client MCP et en observant le temps de réponse de l'outil. Configurez votre agent (Claude Desktop, Cursor ou un client personnalisé) pour qu'il charge le serveur, puis vérifiez extrait_page et recherche apparaît dans sa liste d'outils, puis demandez-lui de récupérer une page en direct. Vérifiez que la réponse est au format Markdown, qu'elle contient l'URL source et qu'elle s'affiche sans être bloquée.

Choisissez délibérément des cibles difficiles. Testez votre système sur un site riche en JavaScript et sur une page connue pour bloquer les robots, car les pages faciles masquent les défaillances que vous avez justement cherché à éviter en développant ce backend. D'après ce que nous observons dans les charges de travail des agents, la première cible difficile est celle où la plupart des serveurs naïfs tombent discrètement en panne. En comparaison, un outil de récupération basé sur le rendu tient le coup. Vérifiez également que le géociblage fonctionne en demandant la même URL depuis deux pays et en confirmant que le contenu diffère là où il le devrait.

Une fois que l'outil de récupération est bien rodé, il devient la couche de récupération pour des systèmes plus vastes. Le même outil qui alimente un agent peut alimenter un pipeline de récupération qui reste à jour, ce qui est exactement ce que Mise en place d'un pipeline RAG sur des données Web en temps réel s'appuie sur un outil de récupération en temps réel comme celui-ci.

Sources

Frequently Asked Questions

Dois-je développer un serveur MCP en partant de zéro ?

Non. Commencez par le serveur de référence officiel de Fetch, disponible dans le dépôt des serveurs MCP. Il gère déjà la récupération d'URL et la conversion HTML vers Markdown ; il vous suffit donc de copier sa structure et de remplacer le backend par une API de rendu qui ne se bloque pas.

Pourquoi ne pas simplement récupérer l'URL directement dans le code de mon outil ?

Les requêtes d'adresse IP du serveur sont bloquées sur les sites protégés. En 2025, les robots représentaient 51 % du trafic Web et Cloudflare a commencé à bloquer par défaut les robots d'indexation basés sur l'IA sur environ 20 % du Web ; par conséquent, les requêtes directes échouent sur les cibles qui vous intéressent. Un chemin de sortie via un appareil réel permet d'éviter cela.

Que renvoie réellement cet outil ?

Un code Markdown épuré accompagné de l'URL source résolue, renvoyé sous forme de données structurées. Le Markdown permet de réduire le coût des tokens, tandis que l'URL source permet à l'agent d'attribuer des revendications et vous permet de contrôler chaque appel.

Dois-je présenter un seul outil ou plusieurs ?

En général, deux : extract_page(url) pour une page connue et recherche(requête) à des fins de découverte. Veillez à ce que le schéma de chaque outil reste simple et que le format de retour soit prévisible, afin que tout client MCP puisse les appeler sans intervention particulière.