1:"$Sreact.fragment" 2:I[69286,["/_next/static/chunks/e70cf233ca02384a.js","/_next/static/chunks/c72270908abd0eb3.js","/_next/static/chunks/d27307698ed538b1.js"],"default"] 3:I[83977,["/_next/static/chunks/e70cf233ca02384a.js","/_next/static/chunks/c72270908abd0eb3.js","/_next/static/chunks/d27307698ed538b1.js"],"Image"] 23:I[99456,["/_next/static/chunks/b292ef59945299fb.js","/_next/static/chunks/db1ed03dad8fa1ad.js"],"OutletBoundary"] 24:"$Sreact.suspense" 0:{"buildId":"hEyQdfANp7GcGtypER5lV","rsc":["$","$1","c",{"children":[["$","article",null,{"className":"container py-12 md:py-20","children":["$","div",null,{"className":"max-w-3xl mx-auto","children":[["$","$L2",null,{"ref":null,"href":"/fr/blog","localeCookie":{"name":"NEXT_LOCALE","sameSite":"lax"},"children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":24,"height":24,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left mr-2 h-4 w-4","aria-hidden":"true","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}]," Retour au blog"],"data-slot":"button","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:hover:bg-accent/50 h-9 px-4 py-2 has-[>svg]:px-3 mb-8 pl-0 hover:pl-0 hover:bg-transparent text-slate-500 hover:text-primary transition-colors"}],["$","div",null,{"className":"space-y-6 mb-12","children":[["$","div",null,{"className":"flex flex-wrap gap-2","children":["$","span",null,{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-full border font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden border-transparent [a&]:hover:bg-primary/90 bg-primary/10 text-primary hover:bg-primary/20 border-none text-sm px-3 py-1","children":"Tutoriels Techniques"}]}],["$","h1",null,{"className":"text-3xl md:text-5xl font-bold leading-tight","children":"Comprendre le Model Context Protocol (MCP) en 10 minutes"}],["$","div",null,{"className":"relative w-full aspect-video rounded-xl overflow-hidden my-8 shadow-lg","children":["$","$L3",null,{"src":"/images/blog_mcp_protocol.png","alt":"Comprendre le Model Context Protocol (MCP) en 10 minutes","fill":true,"className":"object-cover","priority":true}]}],["$","div",null,{"className":"flex flex-wrap items-center gap-6 text-slate-500 text-sm border-b border-slate-100 dark:border-slate-800 pb-8","children":[["$","div",null,{"className":"flex items-center gap-2","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":16,"height":16,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-user","aria-hidden":"true","children":[["$","path","975kel",{"d":"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"}],["$","circle","17ys0d",{"cx":"12","cy":"7","r":"4"}],"$undefined"]}],["$","span",null,{"className":"font-medium text-slate-900 dark:text-slate-200","children":"Guillaume Hochard"}]]}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":16,"height":16,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-calendar","aria-hidden":"true","children":[["$","path","1cmpym",{"d":"M8 2v4"}],["$","path","4m81vk",{"d":"M16 2v4"}],["$","rect","1hopcy",{"width":"18","height":"18","x":"3","y":"4","rx":"2"}],["$","path","8toen8",{"d":"M3 10h18"}],"$undefined"]}],["$","span",null,{"children":"2025-01-10"}]]}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":16,"height":16,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-clock","aria-hidden":"true","children":["$L4","$L5","$undefined"]}],"$L6"]}]]}]]}],"$L7","$L8"]}]}],null,"$L9"]}],"loading":null,"isPartial":false} 4:["$","path","mmk7yg",{"d":"M12 6v6l4 2"}] 5:["$","circle","1mglay",{"cx":"12","cy":"12","r":"10"}] 6:["$","span",null,{"children":"7 min"}] 7:["$","div",null,{"className":"prose prose-lg dark:prose-invert max-w-none","children":["$","article",null,{"className":"prose prose-lg max-w-none prose-headings:font-heading prose-a:text-primary hover:prose-a:text-primary-700","children":[["$","p","p-0",{"className":"mb-4 text-gray-600 leading-relaxed","children":["Le ",["$","strong","strong-0",{"children":"Model Context Protocol (MCP)"}],", développé par Anthropic, est en passe de devenir le standard pour connecter les LLMs à des outils et données externes. Voici tout ce que vous devez savoir."]}],"\n",["$","h2","h2-0",{"className":"text-3xl font-semibold mb-4 mt-12 text-gray-800 border-b pb-2","children":"Le problème que MCP résout"}],"\n",["$","p","p-1",{"className":"mb-4 text-gray-600 leading-relaxed","children":"Jusqu'à présent, chaque application LLM devait :"}],"\n",["$","ul","ul-0",{"className":"list-disc pl-6 mb-4 space-y-2","children":["\n",["$","li","li-0",{"className":"text-gray-600","children":"Implémenter sa propre logique d'intégration avec des outils (APIs, DBs, fichiers)"}],"\n",["$","li","li-1",{"className":"text-gray-600","children":"Gérer l'authentification, les schémas JSON, les erreurs"}],"\n",["$","li","li-2",{"className":"text-gray-600","children":"Réinventer la roue à chaque projet"}],"\n"]}],"\n",["$","p","p-2",{"className":"mb-4 text-gray-600 leading-relaxed","children":["$","strong","strong-0",{"children":"MCP standardise tout ça."}]}],"\n",["$","hr","hr-0",{}],"\n",["$","h2","h2-1",{"className":"text-3xl font-semibold mb-4 mt-12 text-gray-800 border-b pb-2","children":"Comment ça marche ?"}],"\n",["$","p","p-3",{"className":"mb-4 text-gray-600 leading-relaxed","children":"MCP définit un protocole client-serveur :"}],"\n",["$","p","p-4",{"className":"mb-4 text-gray-600 leading-relaxed","children":[["$","strong","strong-0",{"children":"Serveur MCP"}],"\nExpose des \"outils\" (functions) que le LLM peut invoquer. Par exemple :"]}],"\n",["$","ul","ul-1",{"className":"list-disc pl-6 mb-4 space-y-2","children":["\n",["$","li","li-0",{"className":"text-gray-600","children":[["$","code","code-0",{"className":"block bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto my-4 font-mono text-sm shadow-lg","children":"search_tickets(query: str)"}]," → cherche dans votre système de ticketing"]}],"\n",["$","li","li-1",{"className":"text-gray-600","children":[["$","code","code-0",{"className":"block bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto my-4 font-mono text-sm shadow-lg","children":"create_issue(title: str, description: str)"}]," → crée un ticket"]}],"\n",["$","li","li-2",{"className":"text-gray-600","children":[["$","code","code-0",{"className":"block bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto my-4 font-mono text-sm shadow-lg","children":"query_database(sql: str)"}]," → interroge votre DB"]}],"\n"]}],"\n",["$","p","p-5",{"className":"mb-4 text-gray-600 leading-relaxed","children":[["$","strong","strong-0",{"children":"Client MCP"}],"\nApplication LLM (Claude Desktop, ChatGPT, votre propre app) qui se connecte au serveur et invoque les outils."]}],"\n",["$","p","p-6",{"className":"mb-4 text-gray-600 leading-relaxed","children":[["$","strong","strong-0",{"children":"Schéma JSON"}],"\nChaque outil expose un schéma décrivant ses paramètres et son output. Le LLM sait ainsi comment l'utiliser."]}],"\n",["$","hr","hr-1",{}],"\n",["$","h2","h2-2",{"className":"text-3xl font-semibold mb-4 mt-12 text-gray-800 border-b pb-2","children":"Architecture"}],"\n",["$","pre","pre-0",{"children":["$","code","code-0",{"className":"block bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto my-4 font-mono text-sm shadow-lg","children":"┌──────────────┐ ┌──────────────┐ ┌──────────────┐\n│ │ MCP │ │ HTTP │ │\n│ LLM (Claude) │ ◄──────► │ MCP Server │ ◄──────► │ Votre API │\n│ │ │ │ │ │\n└──────────────┘ └──────────────┘ └──────────────┘\n"}]}],"\n","$La","\n","$Lb","\n","$Lc","\n","$Ld","\n","$Le","\n","$Lf","\n","$L10","\n","$L11","\n","$L12","\n","$L13","\n","$L14","\n","$L15","\n","$L16","\n","$L17","\n","$L18","\n","$L19","\n","$L1a","\n","$L1b","\n","$L1c","\n","$L1d","\n","$L1e","\n","$L1f","\n","$L20","\n","$L21"]}]}] 8:["$","div",null,{"className":"mt-12 pt-8 border-t border-slate-100 dark:border-slate-800","children":[["$","h3",null,{"className":"text-lg font-semibold mb-4","children":"Tags"}],["$","div",null,{"className":"flex flex-wrap gap-2","children":[["$","span","MCP",{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden [a&]:hover:bg-accent [a&]:hover:text-accent-foreground text-slate-600","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":12,"height":12,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-tag mr-1","aria-hidden":"true","children":[["$","path","vktsd0",{"d":"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"}],["$","circle","kqv944",{"cx":"7.5","cy":"7.5","r":".5","fill":"currentColor"}],"$undefined"]}]," ","MCP"]}],["$","span","Anthropic",{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden [a&]:hover:bg-accent [a&]:hover:text-accent-foreground text-slate-600","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":12,"height":12,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-tag mr-1","aria-hidden":"true","children":[["$","path","vktsd0",{"d":"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"}],["$","circle","kqv944",{"cx":"7.5","cy":"7.5","r":".5","fill":"currentColor"}],"$undefined"]}]," ","Anthropic"]}],["$","span","Claude",{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden [a&]:hover:bg-accent [a&]:hover:text-accent-foreground text-slate-600","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":12,"height":12,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-tag mr-1","aria-hidden":"true","children":[["$","path","vktsd0",{"d":"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"}],["$","circle","kqv944",{"cx":"7.5","cy":"7.5","r":".5","fill":"currentColor"}],"$undefined"]}]," ","Claude"]}],["$","span","IntegrationAI",{"data-slot":"badge","className":"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden [a&]:hover:bg-accent [a&]:hover:text-accent-foreground text-slate-600","children":["$L22"," ","IntegrationAI"]}]]}]]}] 9:["$","$L23",null,{"children":["$","$24",null,{"name":"Next.MetadataOutlet","children":"$@25"}]}] a:["$","hr","hr-2",{}] b:["$","h2","h2-3",{"className":"text-3xl font-semibold mb-4 mt-12 text-gray-800 border-b pb-2","children":"Exemple concret : Serveur MCP pour Jira"}] c:["$","p","p-7",{"className":"mb-4 text-gray-600 leading-relaxed","children":["$","strong","strong-0",{"children":"Étape 1 : Définir les outils"}]}] d:["$","pre","pre-1",{"children":["$","code","code-0",{"className":"language-python","children":"tools = [\n {\n \"name\": \"search_tickets\",\n \"description\": \"Search for Jira tickets\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\"type\": \"string\", \"description\": \"JQL query\"}\n },\n \"required\": [\"query\"]\n }\n },\n {\n \"name\": \"create_ticket\",\n \"description\": \"Create a new Jira ticket\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"title\": {\"type\": \"string\"},\n \"description\": {\"type\": \"string\"},\n \"priority\": {\"type\": \"string\", \"enum\": [\"low\", \"medium\", \"high\"]}\n },\n \"required\": [\"title\", \"description\"]\n }\n }\n]\n"}]}] e:["$","p","p-8",{"className":"mb-4 text-gray-600 leading-relaxed","children":["$","strong","strong-0",{"children":"Étape 2 : Implémenter la logique"}]}] f:["$","pre","pre-2",{"children":["$","code","code-0",{"className":"language-python","children":"def handle_tool_call(tool_name, parameters):\n if tool_name == \"search_tickets\":\n return jira_client.search(parameters[\"query\"])\n elif tool_name == \"create_ticket\":\n return jira_client.create_issue(\n title=parameters[\"title\"],\n description=parameters[\"description\"],\n priority=parameters.get(\"priority\", \"medium\")\n )\n"}]}] 10:["$","p","p-9",{"className":"mb-4 text-gray-600 leading-relaxed","children":["$","strong","strong-0",{"children":"Étape 3 : Exposer le serveur MCP"}]}] 11:["$","p","p-10",{"className":"mb-4 text-gray-600 leading-relaxed","children":"Votre serveur MCP écoute sur un port et répond aux requêtes du client."}] 12:["$","p","p-11",{"className":"mb-4 text-gray-600 leading-relaxed","children":["$","strong","strong-0",{"children":"Étape 4 : Connecter Claude Desktop"}]}] 13:["$","p","p-12",{"className":"mb-4 text-gray-600 leading-relaxed","children":"Configurez Claude Desktop pour pointer vers votre serveur MCP. Claude peut maintenant chercher et créer des tickets Jira en langage naturel !"}] 14:["$","hr","hr-3",{}] 15:["$","h2","h2-4",{"className":"text-3xl font-semibold mb-4 mt-12 text-gray-800 border-b pb-2","children":"Avantages de MCP"}] 16:["$","p","p-13",{"className":"mb-4 text-gray-600 leading-relaxed","children":["✅ ",["$","strong","strong-0",{"children":"Standardisation"}]," : Plus besoin de réinventer la roue\n✅ ",["$","strong","strong-1",{"children":"Réutilisabilité"}]," : Un serveur MCP peut être utilisé par plusieurs clients\n✅ ",["$","strong","strong-2",{"children":"Sécurité"}]," : Gestion centralisée de l'authentification et des permissions\n✅ ",["$","strong","strong-3",{"children":"Évolutivité"}]," : Ajouter de nouveaux outils sans modifier le client"]}] 17:["$","hr","hr-4",{}] 18:["$","h2","h2-5",{"className":"text-3xl font-semibold mb-4 mt-12 text-gray-800 border-b pb-2","children":"Cas d'usage"}] 19:["$","ul","ul-2",{"className":"list-disc pl-6 mb-4 space-y-2","children":["\n",["$","li","li-0",{"className":"text-gray-600","children":[["$","strong","strong-0",{"children":"Intégration CRM"}]," : Salesforce, HubSpot"]}],"\n",["$","li","li-1",{"className":"text-gray-600","children":[["$","strong","strong-0",{"children":"Outils de ticketing"}]," : Jira, Zendesk, Linear"]}],"\n",["$","li","li-2",{"className":"text-gray-600","children":[["$","strong","strong-0",{"children":"Bases de données"}]," : PostgreSQL, MongoDB"]}],"\n",["$","li","li-3",{"className":"text-gray-600","children":[["$","strong","strong-0",{"children":"APIs internes"}]," : Connecter le LLM à vos systèmes métiers"]}],"\n",["$","li","li-4",{"className":"text-gray-600","children":[["$","strong","strong-0",{"children":"Outils de collaboration"}]," : Slack, Teams, Notion"]}],"\n"]}] 1a:["$","hr","hr-5",{}] 1b:["$","h2","h2-6",{"className":"text-3xl font-semibold mb-4 mt-12 text-gray-800 border-b pb-2","children":"Comment apprendre MCP ?"}] 1c:["$","p","p-14",{"className":"mb-4 text-gray-600 leading-relaxed","children":["Chez Ikasia, nous proposons un ",["$","strong","strong-0",{"children":"atelier intensif de 3h30"}]," pour construire votre premier serveur MCP et le connecter à Claude."]}] 1d:["$","p","p-15",{"className":"mb-4 text-gray-600 leading-relaxed","children":["$","strong","strong-0",{"children":"Programme :"}]}] 1e:["$","ul","ul-3",{"className":"list-disc pl-6 mb-4 space-y-2","children":["\n",["$","li","li-0",{"className":"text-gray-600","children":"Concepts MCP (serveurs, clients, outils, schémas)"}],"\n",["$","li","li-1",{"className":"text-gray-600","children":"Lab : Créer un serveur MCP avec 2 outils"}],"\n",["$","li","li-2",{"className":"text-gray-600","children":"Connecter Claude Desktop"}],"\n",["$","li","li-3",{"className":"text-gray-600","children":"Sécurité, logging, déploiement"}],"\n"]}] 1f:["$","hr","hr-6",{}] 20:["$","h2","h2-7",{"className":"text-3xl font-semibold mb-4 mt-12 text-gray-800 border-b pb-2","children":"Conclusion"}] 21:["$","p","p-16",{"className":"mb-4 text-gray-600 leading-relaxed","children":["MCP est en train de devenir le standard pour les intégrations LLM-outils. Si vous construisez des applications IA, c'est une technologie à maîtriser ",["$","strong","strong-0",{"children":"dès maintenant"}],"."]}] 22:["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":12,"height":12,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-tag mr-1","aria-hidden":"true","children":[["$","path","vktsd0",{"d":"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"}],["$","circle","kqv944",{"cx":"7.5","cy":"7.5","r":".5","fill":"currentColor"}],"$undefined"]}] 25:null