{"id":2101,"date":"2025-07-05T10:00:00","date_gmt":"2025-07-05T08:00:00","guid":{"rendered":"https:\/\/pletzenauer.com\/?p=2101"},"modified":"2026-08-05T17:22:34","modified_gmt":"2026-08-05T15:22:34","slug":"model-context-protocol-mcp-n8n","status":"publish","type":"post","link":"https:\/\/pletzenauer.com\/fr\/2025\/07\/05\/model-context-protocol-mcp-n8n\/","title":{"rendered":"Le Model Context Protocol (MCP) expliqu\u00e9 simplement \u2013 avec un exemple n8n"},"content":{"rendered":"<p>Qui construit des agents IA conna\u00eet le probl\u00e8me : pour chaque fonction d&#8217;un service connect\u00e9, il faut d\u00e9finir un outil distinct. Chercher, cr\u00e9er, modifier, supprimer une entr\u00e9e d&#8217;agenda \u2013 cela fait vite quatre briques s\u00e9par\u00e9es, et ce pour un seul service. Avec de nombreuses connexions, la charge de maintenance augmente d&#8217;autant. Le <strong>Model Context Protocol (MCP)<\/strong> suit une autre approche : il standardise la fa\u00e7on dont un mod\u00e8le de langage communique avec un service \u2013 et r\u00e9duit drastiquement le nombre de briques n\u00e9cessaires. Cet article r\u00e9sume le concept et un exemple pratique concret avec n8n.<\/p>\n<div style=\"background:#FFE6D6;border-left:4px solid #F26A21;padding:16px 20px;border-radius:6px;margin:24px 0;\">\n<strong>L&#8217;essentiel en bref<\/strong><\/p>\n<ul>\n<li>MCP standardise la fa\u00e7on dont un mod\u00e8le de langage comprend le contexte d&#8217;un service \u2013 donc ce qu&#8217;il sait faire et comment on s&#8217;y adresse.<\/li>\n<li>Au lieu de connecter chaque fonction s\u00e9par\u00e9ment, un <em>serveur MCP<\/em> (devant le service) et un <em>client MCP<\/em> (dans l&#8217;agent) suffisent.<\/li>\n<li>L&#8217;agent se contente de deux \u00e9tapes : <em>lister<\/em> les fonctions (List Tools) et <em>ex\u00e9cuter<\/em> une fonction (Execute Tool).<\/li>\n<li>Dans n8n, cela se reproduit avec une variable d&#8217;environnement, un node communautaire et deux outils client MCP.<\/li>\n<li>MCP est une technologie jeune : des r\u00e9serves de s\u00e9curit\u00e9 connues existent \u2013 en environnement de production, la prudence est de mise.<\/li>\n<\/ul>\n<\/div>\n<figure style=\"margin:28px 0;\"><img decoding=\"async\" src=\"https:\/\/pletzenauer.com\/wp-content\/uploads\/2026\/06\/1488-1.png\" alt=\"Zwei-Spalten-Vergleich: links klassische Tool-pro-Funktion-Anbindung mit vielen Bausteinen, rechts MCP mit nur zwei Schritten List Tools und Execute Tool.\" style=\"width:100%;height:auto;border-radius:8px;border:1px solid #E5E2DE;\"\/><figcaption style=\"font-size:0.9em;color:#6b6b6b;margin-top:8px;\">Au lieu de connecter chaque fonction une par une, l&#8217;agent se contente de deux op\u00e9rations MCP.<\/figcaption><\/figure>\n<h2>Ce que MCP r\u00e9sout r\u00e9ellement<\/h2>\n<p>L&#8217;id\u00e9e de base du Model Context Protocol tient dans son nom : un mod\u00e8le de langage doit comprendre le <strong>contexte<\/strong> d&#8217;une application. Concr\u00e8tement : que sait faire cette application ? \u00c0 quoi sert-elle ? Et comment y ex\u00e9cuter des actions ?<\/p>\n<p>Classiquement, on connecte chaque outil individuellement lors de la construction d&#8217;un agent \u2013 chaque fonction est une brique \u00e0 part. Pour Google Calendar par exemple : un outil pour chercher des entr\u00e9es, un pour les mettre \u00e0 jour, un pour les supprimer, un pour les cr\u00e9er. Quatre fonctions pour un seul service. Sur des agents complexes reli\u00e9s \u00e0 de nombreux services, cela monte vite \u00e0 des dizaines de briques.<\/p>\n<h2>Serveur, client et le sch\u00e9ma uniforme<\/h2>\n<p>MCP fonctionne avec deux r\u00f4les :<\/p>\n<ul>\n<li><strong>Serveur MCP :<\/strong> il se place devant le service proprement dit (p. ex. Airbnb ou Google Calendar) et d\u00e9crit comment interagir avec ce service.<\/li>\n<li><strong>Client MCP :<\/strong> il se trouve dans l&#8217;agent, r\u00e9cup\u00e8re les fonctions du serveur et les appelle.<\/li>\n<\/ul>\n<p>Dans la mise en \u0153uvre actuelle \u2013 par exemple dans n8n \u2013 deux \u00e9tapes suffisent au lieu de nombreux outils individuels :<\/p>\n<ol>\n<li><strong>List Tools (lister) :<\/strong> l&#8217;agent demande au serveur quelles fonctions sont disponibles.<\/li>\n<li><strong>Execute Tool (ex\u00e9cuter) :<\/strong> l&#8217;agent appelle une fonction pr\u00e9cise avec les param\u00e8tres correspondants.<\/li>\n<\/ol>\n<p>Le point d\u00e9cisif est le <strong>sch\u00e9ma uniforme<\/strong>. Peu importe le service situ\u00e9 derri\u00e8re : la r\u00e9ponse \u00e0 une requ\u00eate List Tools est toujours construite de la m\u00eame mani\u00e8re. Elle contient, pour chaque fonction, le nom, une description et un sch\u00e9ma avec les param\u00e8tres autoris\u00e9s. Les contenus et les param\u00e8tres diff\u00e8rent d&#8217;un service \u00e0 l&#8217;autre \u2013 la structure, elle, reste constante. C&#8217;est exactement ce que le protocole prescrit et standardise.<\/p>\n<h3>Un exemple avec l&#8217;outil Airbnb<\/h3>\n<p>Si l&#8217;on demande \u00e0 l&#8217;agent quelles possibilit\u00e9s offre l&#8217;outil Airbnb, il va chercher lui-m\u00eame la liste des fonctions via l&#8217;outil List Tools. Reviennent entre autres :<\/p>\n<ul>\n<li><strong>Airbnb Search :<\/strong> recherche d&#8217;offres avec filtres et pagination \u2013 lieu, dates d&#8217;arriv\u00e9e et de d\u00e9part, nombre d&#8217;adultes, d&#8217;enfants, de b\u00e9b\u00e9s et d&#8217;animaux, ainsi que fourchette de prix.<\/li>\n<li><strong>Airbnb Listing Details :<\/strong> informations d\u00e9taill\u00e9es sur une offre donn\u00e9e via son identifiant d&#8217;annonce.<\/li>\n<\/ul>\n<p>L&#8217;agent n&#8217;a eu besoin d&#8217;aucune consigne pr\u00e9alable ici \u2013 il s&#8217;est procur\u00e9 lui-m\u00eame les fonctions disponibles, leurs descriptions et le sch\u00e9ma des param\u00e8tres. Dans le sch\u00e9ma, on voit par exemple un champ texte <code>location<\/code> (ville, r\u00e9gion, etc.), les champs de date pour l&#8217;arriv\u00e9e et le d\u00e9part, le nombre d&#8217;adultes ainsi que le prix minimum et maximum.<\/p>\n<p>Si l&#8217;on formule ensuite une demande concr\u00e8te \u2013 par exemple un logement \u00e0 Bangkok pour six personnes \u00e0 50 euros la nuit au maximum \u2013, l&#8217;agent proc\u00e8de en deux temps : il appelle d&#8217;abord List Tools (il n&#8217;a rien retenu, aucune m\u00e9moire n&#8217;\u00e9tant active), identifie les param\u00e8tres n\u00e9cessaires gr\u00e2ce au sch\u00e9ma et lance la recherche via Execute Tool. Le r\u00e9sultat \u2013 par exemple un logement avec trois lits pour environ 35 euros la nuit \u2013 revient, et cela avec seulement deux outils ajout\u00e9s. Si Airbnb proposait davantage de fonctions, par exemple pour g\u00e9rer ses propres annonces, elles se refl\u00e9teraient dans le m\u00eame sch\u00e9ma, sans qu&#8217;il faille d\u00e9finir d&#8217;autres briques.<\/p>\n<h2>Comment reproduire MCP dans n8n<\/h2>\n<p>Les \u00e9tapes suivantes montrent la configuration sur l&#8217;exemple Airbnb. Il se pr\u00eate bien \u00e0 l&#8217;essai, car aucune cl\u00e9 d&#8217;API n&#8217;est n\u00e9cessaire.<\/p>\n<ol>\n<li><strong>D\u00e9finir la variable d&#8217;environnement :<\/strong> mettez <code>N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE<\/code> sur <code>true<\/code>. Cela autorise les nodes communautaires \u00e0 acc\u00e9der aux outils. Dans une installation Docker (p. ex. sur un serveur Hetzner), inscrivez-la dans la section <code>environment<\/code> du fichier <code>docker-compose<\/code> et red\u00e9marrez l&#8217;instance.<\/li>\n<li><strong>Cr\u00e9er l&#8217;AI Agent :<\/strong> cr\u00e9ez un AI Agent et associez-lui un mod\u00e8le (dans la vid\u00e9o, GPT-4.1 Mini).<\/li>\n<li><strong>Installer le node communautaire :<\/strong> sous <em>Settings &rarr; Community Nodes<\/em>, installez le paquet <code>n8n-nodes-mcp<\/code> et confirmez l&#8217;avertissement concernant l&#8217;installation de code non v\u00e9rifi\u00e9 provenant de sources publiques.<\/li>\n<li><strong>Ajouter l&#8217;outil client MCP :<\/strong> via le plus \u00e0 c\u00f4t\u00e9 de <em>Tools<\/em>, cherchez \u00ab MCP \u00bb. Attention : \u00e0 ne pas confondre avec le <em>MCP Client Tool<\/em> maison de n8n \u2013 la variante communautaire se reconna\u00eet au symbole de bo\u00eete et est actuellement plus compl\u00e8te.<\/li>\n<li><strong>Cr\u00e9er les identifiants :<\/strong> comme type de connexion, vous avez le choix entre Command Line, Server-Sent Events et HTTP Streamable. Dans l&#8217;exemple, on reste sur Command Line. Les bonnes valeurs figurent dans le d\u00e9p\u00f4t du serveur MCP concern\u00e9, \u00e0 la section consacr\u00e9e \u00e0 l&#8217;installation. Pour Airbnb : commande <code>npx<\/code>, arguments saisis un par un \u2013 <code>-y<\/code>, le paquet <code>@openbnb\/mcp-server-airbnb<\/code> et, en option, <code>--ignore-robots-txt<\/code>.<\/li>\n<\/ol>\n<blockquote><p><strong>Remarque sur robots.txt :<\/strong> l&#8217;option <code>--ignore-robots-txt<\/code> passe outre les r\u00e8gles d&#8217;acc\u00e8s d&#8217;un site web. Pour une d\u00e9monstration, c&#8217;est d\u00e9fendable \u2013 en production, respectez le fichier robots.txt des services concern\u00e9s.<\/p><\/blockquote>\n<h3>Configurer les deux op\u00e9rations<\/h3>\n<p>Il vous faut ensuite deux outils client MCP avec des op\u00e9rations diff\u00e9rentes :<\/p>\n<ul>\n<li><strong>List Tools :<\/strong> nommez l&#8217;outil p. ex. \u00ab Airbnb List Tools \u00bb et indiquez en description qu&#8217;il sert \u00e0 r\u00e9cup\u00e9rer tous les outils Airbnb disponibles. Un clic de test (Execute Step) devrait renvoyer la liste de fonctions connue, avec nom, description et sch\u00e9ma.<\/li>\n<li><strong>Execute Tool :<\/strong> un second outil client MCP avec l&#8217;op\u00e9ration Execute Tool. Description : sert \u00e0 ex\u00e9cuter des outils Airbnb, listables via l&#8217;outil List Tools. Vous transmettez le nom de l&#8217;outil sous forme d&#8217;expression, de sorte que l&#8217;agent d\u00e9cide lui-m\u00eame quelle fonction appeler ; vous laissez les param\u00e8tres de l&#8217;outil libres pour qu&#8217;il les d\u00e9termine lui-m\u00eame.<\/li>\n<\/ul>\n<p>Apr\u00e8s avoir rang\u00e9 et enregistr\u00e9, l&#8217;agent peut \u00eatre test\u00e9 \u2013 par exemple \u00e0 nouveau avec la demande sur Bangkok. Il r\u00e9cup\u00e8re la liste des fonctions, la renvoie au mod\u00e8le, opte pour la recherche et fournit des logements adapt\u00e9s. Exactement le comportement d\u00e9crit dans la partie conceptuelle, cette fois dans votre propre workflow.<\/p>\n<h2>Au-del\u00e0 de n8n \u2013 et un mot sur la s\u00e9curit\u00e9<\/h2>\n<p>MCP ne se limite pas aux plateformes d&#8217;automatisation. Des applications de bureau comme Claude Desktop peuvent elles aussi \u00eatre reli\u00e9es \u00e0 des serveurs MCP. On peut ainsi d\u00e9l\u00e9guer, depuis le chat, des t\u00e2ches \u00e0 des programmes install\u00e9s localement \u2013 un exemple souvent cit\u00e9 est le pilotage du logiciel 3D Blender via MCP, o\u00f9 une personne sans connaissance de Blender r\u00e9alise des rendus. Le serveur MCP tourne alors en local, le mod\u00e8le de langage passant toujours par le service cloud.<\/p>\n<p>Malgr\u00e9 l&#8217;enthousiasme : MCP est un d\u00e9veloppement r\u00e9cent. Il existe d\u00e9j\u00e0 des <strong>r\u00e9serves de s\u00e9curit\u00e9<\/strong>, et des failles ont \u00e9t\u00e9 d\u00e9couvertes. En environnement de production surtout, la technologie est \u00e0 manier avec prudence \u2013 il vaut la peine d&#8217;observer la suite avant d&#8217;y adosser des processus critiques.<\/p>\n<h2>Conclusion<\/h2>\n<p>Le Model Context Protocol est une approche de standardisation pragmatique : via un serveur MCP, un mod\u00e8le de langage apprend lui-m\u00eame ce qu&#8217;un service sait faire et comment s&#8217;y adresser \u2013 au lieu de pr\u00e9d\u00e9finir chaque fonction une par une. Pour des agents IA complexes, cela signifie nettement moins de briques et moins de maintenance ; dans l&#8217;exemple n8n, deux \u00e9tapes suffisent : lister et ex\u00e9cuter. L&#8217;approche est convaincante, mais encore jeune. Qui veut l&#8217;essayer devrait commencer par des services non critiques et prendre au s\u00e9rieux, en production, les questions de s\u00e9curit\u00e9 rest\u00e9es ouvertes.<\/p>\n<p><strong>Source :<\/strong> <a href=\"https:\/\/www.youtube.com\/watch?v=ujHOD52ybyo\" target=\"_blank\" rel=\"noopener\">Model Context Protocol (MCP): Erkl\u00e4rung &amp; n8n Tutorial (Deutsch)<\/a> \u2013 cha\u00eene YouTube Philip Thomas (en allemand).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Qu&#8217;est-ce que le Model Context Protocol (MCP) et comment simplifie-t-il les agents IA ? Concept, exemple pratique avec n8n et Airbnb, et points de s\u00e9curit\u00e9.<\/p>\n","protected":false},"author":0,"featured_media":1503,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-2101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-unkategorisiert"],"_links":{"self":[{"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/posts\/2101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/comments?post=2101"}],"version-history":[{"count":1,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/posts\/2101\/revisions"}],"predecessor-version":[{"id":2504,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/posts\/2101\/revisions\/2504"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/media\/1503"}],"wp:attachment":[{"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/media?parent=2101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/categories?post=2101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pletzenauer.com\/fr\/wp-json\/wp\/v2\/tags?post=2101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}