{"id":2060,"date":"2026-03-10T10:05:20","date_gmt":"2026-03-10T09:05:20","guid":{"rendered":"https:\/\/askem.eu\/?page_id=2060"},"modified":"2026-03-10T10:06:00","modified_gmt":"2026-03-10T09:06:00","slug":"mcp","status":"publish","type":"page","link":"https:\/\/askem.eu\/en\/mcp\/","title":{"rendered":"MCP"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"2060\" class=\"elementor elementor-2060\" data-elementor-post-type=\"page\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-7006fb8 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"7006fb8\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-583841d\" data-id=\"583841d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-c8c2c3d elementor-widget elementor-widget-html\" data-id=\"c8c2c3d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n<title>MCP \u2014 Cours Complet<\/title>\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Lora:ital,wght@0,400;0,600;1,400&family=DM+Mono:wght@400;500&family=Syne:wght@400;700;800&display=swap\" rel=\"stylesheet\">\n<style>&nbsp;:root {\n    --bg: #0f0f13;\n    --surface: #16161d;\n    --surface2: #1e1e28;\n    --border: #2a2a38;\n    --text: #d4d0c8;\n    --text-muted: #6b6878;\n    --text-dim: #9994a8;\n    --accent: #7c6af7;\n    --accent2: #f0a86e;\n    --accent3: #5ec9a8;\n    --red: #e05c6b;\n    --white: #f0ede6;\n    --reading-width: 680px;\n  }\n\n  * { margin: 0; padding: 0; box-sizing: border-box; }\n\n  html { scroll-behavior: smooth; }\n\n  body {\n    background: var(--bg);\n    color: var(--text);\n    font-family: 'Lora', Georgia, serif;\n    font-size: 18px;\n    line-height: 1.8;\n    min-height: 100vh;\n  }\n\n  \/* \u2500\u2500 PROGRESS BAR \u2500\u2500 *\/\n  #progress-bar {\n    position: fixed;\n    top: 0; left: 0;\n    height: 3px;\n    background: linear-gradient(90deg, var(--accent), var(--accent2));\n    width: 0%;\n    z-index: 1000;\n    transition: width 0.1s linear;\n  }\n\n  \/* \u2500\u2500 TOP NAV \u2500\u2500 *\/\n  #topnav {\n    position: fixed;\n    top: 0; left: 0; right: 0;\n    height: 52px;\n    background: rgba(15,15,19,0.9);\n    backdrop-filter: blur(12px);\n    border-bottom: 1px solid var(--border);\n    display: flex;\n    align-items: center;\n    padding: 0 24px;\n    z-index: 900;\n    gap: 16px;\n  }\n\n  #topnav .brand {\n    font-family: 'Syne', sans-serif;\n    font-weight: 800;\n    font-size: 13px;\n    color: var(--accent);\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n  }\n\n  #topnav .sep { color: var(--border); }\n\n  #topnav .title {\n    font-size: 13px;\n    color: var(--text-dim);\n    font-family: 'Syne', sans-serif;\n    font-weight: 400;\n  }\n\n  #topnav .time {\n    margin-left: auto;\n    font-family: 'DM Mono', monospace;\n    font-size: 12px;\n    color: var(--text-muted);\n  }\n\n  #toc-toggle {\n    background: var(--surface2);\n    border: 1px solid var(--border);\n    color: var(--text-dim);\n    padding: 5px 12px;\n    border-radius: 4px;\n    cursor: pointer;\n    font-size: 12px;\n    font-family: 'DM Mono', monospace;\n    transition: all 0.2s;\n  }\n  #toc-toggle:hover { border-color: var(--accent); color: var(--accent); }\n\n  \/* \u2500\u2500 TOC PANEL \u2500\u2500 *\/\n  #toc-panel {\n    position: fixed;\n    top: 52px; left: 0;\n    width: 300px;\n    height: calc(100vh - 52px);\n    background: var(--surface);\n    border-right: 1px solid var(--border);\n    overflow-y: auto;\n    padding: 24px 0;\n    z-index: 800;\n    transform: translateX(-100%);\n    transition: transform 0.3s cubic-bezier(0.4,0,0.2,1);\n  }\n  #toc-panel.open { transform: translateX(0); }\n\n  #toc-panel h3 {\n    font-family: 'Syne', sans-serif;\n    font-size: 10px;\n    font-weight: 700;\n    letter-spacing: 0.2em;\n    text-transform: uppercase;\n    color: var(--text-muted);\n    padding: 0 24px 16px;\n    border-bottom: 1px solid var(--border);\n    margin-bottom: 12px;\n  }\n\n  .toc-item {\n    display: block;\n    padding: 8px 24px;\n    font-size: 13px;\n    font-family: 'Syne', sans-serif;\n    color: var(--text-dim);\n    text-decoration: none;\n    transition: all 0.15s;\n    border-left: 2px solid transparent;\n    line-height: 1.4;\n  }\n  .toc-item:hover { color: var(--white); border-left-color: var(--accent); background: rgba(124,106,247,0.06); }\n  .toc-item.active { color: var(--accent); border-left-color: var(--accent); }\n  .toc-item .toc-num {\n    font-family: 'DM Mono', monospace;\n    font-size: 11px;\n    color: var(--text-muted);\n    margin-right: 8px;\n  }\n\n  \/* \u2500\u2500 MAIN CONTENT \u2500\u2500 *\/\n  #main {\n    max-width: var(--reading-width);\n    margin: 0 auto;\n    padding: 120px 24px 120px;\n    transition: margin-left 0.3s;\n  }\n\n  \/* \u2500\u2500 HERO \u2500\u2500 *\/\n  .hero {\n    text-align: center;\n    padding: 40px 0 80px;\n    border-bottom: 1px solid var(--border);\n    margin-bottom: 80px;\n  }\n\n  .hero .kicker {\n    font-family: 'DM Mono', monospace;\n    font-size: 11px;\n    letter-spacing: 0.2em;\n    text-transform: uppercase;\n    color: var(--accent);\n    margin-bottom: 24px;\n  }\n\n  .hero h1 {\n    font-family: 'Syne', sans-serif;\n    font-weight: 800;\n    font-size: clamp(42px, 8vw, 72px);\n    line-height: 1.0;\n    color: var(--white);\n    margin-bottom: 12px;\n    letter-spacing: -0.02em;\n  }\n\n  .hero h1 span { color: var(--accent); }\n\n  .hero .subtitle {\n    font-size: 16px;\n    color: var(--text-dim);\n    font-style: italic;\n    margin-bottom: 40px;\n    line-height: 1.5;\n  }\n\n  .hero-meta {\n    display: inline-flex;\n    gap: 32px;\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: 8px;\n    padding: 16px 32px;\n  }\n\n  .hero-meta-item {\n    text-align: center;\n  }\n\n  .hero-meta-item .val {\n    font-family: 'Syne', sans-serif;\n    font-weight: 700;\n    font-size: 20px;\n    color: var(--white);\n    display: block;\n  }\n\n  .hero-meta-item .lab {\n    font-family: 'DM Mono', monospace;\n    font-size: 10px;\n    color: var(--text-muted);\n    text-transform: uppercase;\n    letter-spacing: 0.1em;\n  }\n\n  \/* \u2500\u2500 SECTIONS \u2500\u2500 *\/\n  .chapter {\n    margin-bottom: 80px;\n    scroll-margin-top: 72px;\n  }\n\n  .chapter-header {\n    display: flex;\n    align-items: center;\n    gap: 16px;\n    margin-bottom: 32px;\n    padding-bottom: 20px;\n    border-bottom: 1px solid var(--border);\n  }\n\n  .chapter-num {\n    font-family: 'DM Mono', monospace;\n    font-size: 11px;\n    color: var(--accent);\n    background: rgba(124,106,247,0.1);\n    border: 1px solid rgba(124,106,247,0.3);\n    border-radius: 4px;\n    padding: 4px 10px;\n    white-space: nowrap;\n    letter-spacing: 0.1em;\n  }\n\n  .chapter h2 {\n    font-family: 'Syne', sans-serif;\n    font-weight: 800;\n    font-size: 26px;\n    color: var(--white);\n    line-height: 1.2;\n    letter-spacing: -0.02em;\n  }\n\n  h3 {\n    font-family: 'Syne', sans-serif;\n    font-weight: 700;\n    font-size: 17px;\n    color: var(--white);\n    margin: 36px 0 12px;\n    letter-spacing: -0.01em;\n  }\n\n  p {\n    margin-bottom: 20px;\n    color: var(--text);\n  }\n\n  strong { color: var(--white); font-weight: 600; }\n  em { color: var(--text-dim); }\n\n  \/* \u2500\u2500 CALLOUTS \u2500\u2500 *\/\n  .callout {\n    border-left: 3px solid var(--accent);\n    background: rgba(124,106,247,0.07);\n    padding: 16px 20px;\n    border-radius: 0 6px 6px 0;\n    margin: 28px 0;\n    font-style: italic;\n    font-size: 16px;\n    color: var(--text-dim);\n    line-height: 1.7;\n  }\n\n  .callout.warn {\n    border-left-color: var(--red);\n    background: rgba(224,92,107,0.07);\n  }\n\n  .callout.tip {\n    border-left-color: var(--accent2);\n    background: rgba(240,168,110,0.07);\n  }\n\n  .callout.green {\n    border-left-color: var(--accent3);\n    background: rgba(94,201,168,0.07);\n  }\n\n  .callout .callout-label {\n    font-family: 'DM Mono', monospace;\n    font-size: 10px;\n    font-style: normal;\n    letter-spacing: 0.15em;\n    text-transform: uppercase;\n    color: var(--accent);\n    margin-bottom: 8px;\n    display: block;\n  }\n\n  .callout.warn .callout-label { color: var(--red); }\n  .callout.tip .callout-label { color: var(--accent2); }\n  .callout.green .callout-label { color: var(--accent3); }\n\n  \/* \u2500\u2500 LISTS \u2500\u2500 *\/\n  ul, ol {\n    margin: 12px 0 24px 0;\n    padding-left: 0;\n    list-style: none;\n  }\n\n  li {\n    padding: 5px 0 5px 24px;\n    position: relative;\n    color: var(--text);\n    font-size: 17px;\n  }\n\n  ul li::before {\n    content: \"\u2014\";\n    position: absolute;\n    left: 0;\n    color: var(--accent);\n    font-family: 'DM Mono', monospace;\n    font-size: 14px;\n  }\n\n  ol { counter-reset: item; }\n  ol li { counter-increment: item; }\n  ol li::before {\n    content: counter(item, decimal-leading-zero);\n    position: absolute;\n    left: 0;\n    color: var(--accent);\n    font-family: 'DM Mono', monospace;\n    font-size: 12px;\n    top: 7px;\n  }\n\n  \/* \u2500\u2500 TABLE \u2500\u2500 *\/\n  .table-wrap {\n    overflow-x: auto;\n    margin: 24px 0;\n  }\n\n  table {\n    width: 100%;\n    border-collapse: collapse;\n    font-size: 15px;\n  }\n\n  thead th {\n    font-family: 'Syne', sans-serif;\n    font-size: 11px;\n    font-weight: 700;\n    letter-spacing: 0.12em;\n    text-transform: uppercase;\n    color: var(--accent);\n    padding: 10px 16px;\n    text-align: left;\n    border-bottom: 1px solid var(--accent);\n    background: rgba(124,106,247,0.05);\n  }\n\n  tbody tr { border-bottom: 1px solid var(--border); }\n  tbody tr:hover { background: rgba(255,255,255,0.02); }\n\n  tbody td {\n    padding: 11px 16px;\n    color: var(--text);\n    vertical-align: top;\n    line-height: 1.5;\n  }\n\n  tbody td:first-child {\n    font-family: 'DM Mono', monospace;\n    font-size: 13px;\n    color: var(--accent2);\n    white-space: nowrap;\n  }\n\n  \/* \u2500\u2500 CODE BLOCK \u2500\u2500 *\/\n  .code-block {\n    background: #0a0a10;\n    border: 1px solid var(--border);\n    border-radius: 8px;\n    padding: 20px 24px;\n    margin: 24px 0;\n    overflow-x: auto;\n    position: relative;\n  }\n\n  .code-block .code-label {\n    font-family: 'DM Mono', monospace;\n    font-size: 10px;\n    color: var(--text-muted);\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    margin-bottom: 12px;\n    display: block;\n    border-bottom: 1px solid var(--border);\n    padding-bottom: 8px;\n  }\n\n  .code-block pre {\n    font-family: 'DM Mono', monospace;\n    font-size: 13px;\n    line-height: 1.7;\n    color: #cdd6f4;\n    white-space: pre;\n  }\n\n  .kw { color: #89dceb; }\n  .str { color: #a6e3a1; }\n  .cmt { color: #6c7086; font-style: italic; }\n  .fn { color: #cba6f7; }\n  .dec { color: #f9e2af; }\n\n  \/* \u2500\u2500 COMPARISON GRID \u2500\u2500 *\/\n  .compare-grid {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 12px;\n    margin: 24px 0;\n  }\n\n  .compare-card {\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: 8px;\n    padding: 20px;\n  }\n\n  .compare-card h4 {\n    font-family: 'DM Mono', monospace;\n    font-size: 11px;\n    letter-spacing: 0.1em;\n    text-transform: uppercase;\n    color: var(--accent2);\n    margin-bottom: 12px;\n    padding-bottom: 8px;\n    border-bottom: 1px solid var(--border);\n  }\n\n  .compare-card ul { margin: 0; }\n  .compare-card li { font-size: 14px; padding: 3px 0 3px 20px; }\n\n  \/* \u2500\u2500 SUMMARY CARDS \u2500\u2500 *\/\n  .takeaways {\n    display: grid;\n    grid-template-columns: 1fr 1fr;\n    gap: 12px;\n    margin: 32px 0;\n  }\n\n  .takeaway-card {\n    border-radius: 8px;\n    padding: 20px;\n    border: 1px solid;\n  }\n\n  .takeaway-card.blue { background: rgba(124,106,247,0.08); border-color: rgba(124,106,247,0.3); }\n  .takeaway-card.orange { background: rgba(240,168,110,0.08); border-color: rgba(240,168,110,0.3); }\n  .takeaway-card.green { background: rgba(94,201,168,0.08); border-color: rgba(94,201,168,0.3); }\n  .takeaway-card.red { background: rgba(224,92,107,0.08); border-color: rgba(224,92,107,0.3); }\n\n  .takeaway-card .tc-icon {\n    font-size: 22px;\n    margin-bottom: 8px;\n    display: block;\n  }\n\n  .takeaway-card h4 {\n    font-family: 'Syne', sans-serif;\n    font-size: 14px;\n    font-weight: 700;\n    color: var(--white);\n    margin-bottom: 6px;\n  }\n\n  .takeaway-card p {\n    font-size: 13px;\n    color: var(--text-dim);\n    margin: 0;\n    line-height: 1.5;\n  }\n\n  \/* \u2500\u2500 FOOTER \u2500\u2500 *\/\n  .doc-footer {\n    text-align: center;\n    padding: 60px 0 40px;\n    border-top: 1px solid var(--border);\n    font-family: 'DM Mono', monospace;\n    font-size: 12px;\n    color: var(--text-muted);\n  }\n\n  .doc-footer a { color: var(--accent); text-decoration: none; }\n\n  \/* \u2500\u2500 SCROLLBAR \u2500\u2500 *\/&nbsp;::-webkit-scrollbar { width: 6px; height: 6px; }&nbsp;::-webkit-scrollbar-track { background: var(--bg); }&nbsp;::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }&nbsp;::-webkit-scrollbar-thumb:hover { background: var(--accent); }\n\n  \/* \u2500\u2500 READING POSITION LABEL \u2500\u2500 *\/\n  #reading-pos {\n    position: fixed;\n    bottom: 24px;\n    right: 24px;\n    font-family: 'DM Mono', monospace;\n    font-size: 11px;\n    color: var(--text-muted);\n    background: var(--surface);\n    border: 1px solid var(--border);\n    border-radius: 20px;\n    padding: 6px 14px;\n    z-index: 700;\n  }\n\n  @media (max-width: 720px) {\n    #main { padding: 80px 16px 80px; }\n    .compare-grid, .takeaways { grid-template-columns: 1fr; }\n    .hero-meta { flex-direction: column; gap: 16px; padding: 16px; }\n  }\n<\/style>\n<\/head>\n<body>\n\n<div id=\"progress-bar\"><\/div>\n\n<nav id=\"topnav\">\n  <span class=\"brand\">MCP<\/span>\n  <span class=\"sep\">|<\/span>\n  <span class=\"title\">Model Context Protocol<\/span>\n  <button id=\"toc-toggle\" onclick=\"toggleToc()\">\u2261 Sommaire<\/button>\n  <span class=\"time\" id=\"reading-time\">~25 min<\/span>\n<\/nav>\n\n<div id=\"toc-panel\">\n  <h3>Table des mati\u00e8res<\/h3>\n  <a class=\"toc-item\" href=\"#ch1\"><span class=\"toc-num\">01<\/span> Contexte &amp; Gen\u00e8se<\/a>\n  <a class=\"toc-item\" href=\"#ch2\"><span class=\"toc-num\">02<\/span> Architecture Technique<\/a>\n  <a class=\"toc-item\" href=\"#ch3\"><span class=\"toc-num\">03<\/span> Les Transports MCP<\/a>\n  <a class=\"toc-item\" href=\"#ch4\"><span class=\"toc-num\">04<\/span> L'\u00c9cosyst\u00e8me 2025<\/a>\n  <a class=\"toc-item\" href=\"#ch5\"><span class=\"toc-num\">05<\/span> M\u00e9caniques Avanc\u00e9es<\/a>\n  <a class=\"toc-item\" href=\"#ch6\"><span class=\"toc-num\">06<\/span> Construire un Serveur MCP<\/a>\n  <a class=\"toc-item\" href=\"#ch7\"><span class=\"toc-num\">07<\/span> Limites Actuelles<\/a>\n  <a class=\"toc-item\" href=\"#ch8\"><span class=\"toc-num\">08<\/span> \u00c9volutions Possibles<\/a>\n  <a class=\"toc-item\" href=\"#ch9\"><span class=\"toc-num\">09<\/span> MCP vs. Autres Standards<\/a>\n  <a class=\"toc-item\" href=\"#ch10\"><span class=\"toc-num\">10<\/span> Implications Strat\u00e9giques<\/a>\n  <a class=\"toc-item\" href=\"#conclusion\"><span class=\"toc-num\">\u2014<\/span> Conclusion<\/a>\n<\/div>\n\n<main id=\"main\">\n\n  <!-- HERO -->\n  <div class=\"hero\">\n    <div class=\"kicker\">Cours complet \u00b7 Mars 2025<\/div>\n    <h1>Model<br><span>Context<\/span><br>Protocol<\/h1>\n    <p class=\"subtitle\">Architecture, \u00e9cosyst\u00e8me, et \u00e9volutions d'un standard qui red\u00e9finit<br>l'int\u00e9gration entre les LLMs et le monde r\u00e9el<\/p>\n    <div class=\"hero-meta\">\n      <div class=\"hero-meta-item\"><span class=\"val\">~25'<\/span><span class=\"lab\">lecture<\/span><\/div>\n      <div class=\"hero-meta-item\"><span class=\"val\">10<\/span><span class=\"lab\">chapitres<\/span><\/div>\n      <div class=\"hero-meta-item\"><span class=\"val\">Int+<\/span><span class=\"lab\">niveau<\/span><\/div>\n    <\/div>\n  <\/div>\n\n  <!-- CH 1 -->\n  <section class=\"chapter\" id=\"ch1\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">01<\/span>\n      <h2>Contexte &amp; Gen\u00e8se du MCP<\/h2>\n    <\/div>\n\n    <h3>Le probl\u00e8me que le MCP r\u00e9sout<\/h3>\n    <p>Les grands mod\u00e8les de langage (LLM) comme Claude, GPT-4 ou Gemini sont, dans leur \u00e9tat natif, des syst\u00e8mes ferm\u00e9s. Ils re\u00e7oivent du texte, produisent du texte, mais n'ont aucun acc\u00e8s direct aux donn\u00e9es de l'entreprise, aux outils internes, aux bases de donn\u00e9es, aux APIs tierces ou au syst\u00e8me de fichiers.<\/p>\n    <p>Pour combler ce foss\u00e9, les d\u00e9veloppeurs ont longtemps bricol\u00e9 des solutions ad hoc&nbsp;: copier-coller de donn\u00e9es dans les prompts, int\u00e9grations custom en dur dans le code, wrappers propri\u00e9taires\u2026 Cette fragmentation engendrait plusieurs probl\u00e8mes critiques&nbsp;:<\/p>\n    <ul>\n      <li><strong>Duplication de code<\/strong> \u2014 chaque \u00e9quipe r\u00e9impl\u00e9mentait sa propre glue entre l'IA et les outils<\/li>\n      <li><strong>Maintenance co\u00fbteuse<\/strong> \u2014 un changement d'API tierce cassait l'int\u00e9gration enti\u00e8re<\/li>\n      <li><strong>S\u00e9curit\u00e9 approximative<\/strong> \u2014 les credentials et contextes sensibles circulaient de fa\u00e7on non standardis\u00e9e<\/li>\n      <li><strong>Scalabilit\u00e9 limit\u00e9e<\/strong> \u2014 impossible de r\u00e9utiliser une int\u00e9gration d'un projet \u00e0 l'autre<\/li>\n    <\/ul>\n\n    <div class=\"callout\">\n      <span class=\"callout-label\">Analogie<\/span>\n      L'analogie la plus juste&nbsp;: avant USB, chaque fabricant avait son propre connecteur. <strong>MCP est l'USB de l'IA<\/strong> \u2014 un port universel pour brancher n'importe quel outil \u00e0 n'importe quel mod\u00e8le.\n    <\/div>\n\n    <h3>Anthropic lance le MCP \u2014 novembre 2024<\/h3>\n    <p>Le 25 novembre 2024, Anthropic publie le Model Context Protocol en open-source. L'annonce est accompagn\u00e9e d'un SDK disponible en Python et TypeScript, ainsi que d'une poign\u00e9e de serveurs MCP de r\u00e9f\u00e9rence connectant Claude Desktop \u00e0 des outils courants&nbsp;: filesystem, GitHub, Google Drive, Slack, PostgreSQL, Puppeteer, etc.<\/p>\n    <p>La d\u00e9cision d'ouvrir le protocole d\u00e8s le d\u00e9part est strat\u00e9giquement importante&nbsp;: Anthropic ne cherche pas \u00e0 capturer la valeur de l'\u00e9cosyst\u00e8me d'int\u00e9gration, mais \u00e0 <strong>d\u00e9finir le standard<\/strong>. La communaut\u00e9 r\u00e9agit fortement \u2014 en quelques semaines, des centaines de serveurs MCP tiers \u00e9mergent.<\/p>\n\n    <h3>L'\u00e9cosyst\u00e8me avant MCP&nbsp;: le chaos des int\u00e9grations<\/h3>\n    <div class=\"table-wrap\">\n      <table>\n        <thead><tr><th>Approche<\/th><th>Probl\u00e8me principal<\/th><\/tr><\/thead>\n        <tbody>\n          <tr><td>Function calling (OpenAI)<\/td><td>Propri\u00e9taire, couplage fort au mod\u00e8le<\/td><\/tr>\n          <tr><td>LangChain tools<\/td><td>Complexit\u00e9, d\u00e9pendance \u00e0 un framework<\/td><\/tr>\n          <tr><td>Plugins ChatGPT<\/td><td>Ferm\u00e9, d\u00e9pr\u00e9ci\u00e9 en 2024<\/td><\/tr>\n          <tr><td>RAG custom<\/td><td>Lecture seule, pas d'actions<\/td><\/tr>\n          <tr><td>Agents AutoGPT<\/td><td>Non d\u00e9terministe, difficile \u00e0 auditer<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n  <\/section>\n\n  <!-- CH 2 -->\n  <section class=\"chapter\" id=\"ch2\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">02<\/span>\n      <h2>Architecture Technique du MCP<\/h2>\n    <\/div>\n\n    <h3>Vue d'ensemble&nbsp;: un protocole client-serveur<\/h3>\n    <p>MCP s'articule autour d'une architecture client-serveur standardis\u00e9e. Trois acteurs principaux&nbsp;:<\/p>\n    <div class=\"table-wrap\">\n      <table>\n        <thead><tr><th>Acteur<\/th><th>R\u00f4le<\/th><\/tr><\/thead>\n        <tbody>\n          <tr><td>Host<\/td><td>L'application qui embarque le LLM (ex&nbsp;: Claude Desktop, un IDE, une app custom). Il orchestre la connexion aux serveurs MCP.<\/td><\/tr>\n          <tr><td>Client MCP<\/td><td>Composant interne au Host qui maintient une session 1:1 avec chaque serveur MCP. G\u00e8re le protocole de communication.<\/td><\/tr>\n          <tr><td>Serveur MCP<\/td><td>Programme l\u00e9ger (souvent local) qui expose des capacit\u00e9s&nbsp;: outils, ressources, prompts. C'est ici que vit la logique m\u00e9tier.<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n\n    <div class=\"callout\">\n      <span class=\"callout-label\">Principe fondamental<\/span>\n      Un Host peut se connecter \u00e0 <strong>plusieurs serveurs MCP simultan\u00e9ment<\/strong>. Un serveur MCP peut exposer simultan\u00e9ment des tools, des resources et des prompts.\n    <\/div>\n\n    <h3>Le protocole de base&nbsp;: JSON-RPC 2.0<\/h3>\n    <p>MCP repose sur JSON-RPC 2.0 comme protocole de messagerie. Ce choix est d\u00e9lib\u00e9r\u00e9&nbsp;: JSON-RPC est simple, largement support\u00e9, language-agnostic, et permet \u00e0 la fois des appels request\/response et des notifications unidirectionnelles.<\/p>\n    <p>La communication suit un cycle en 3 phases&nbsp;:<\/p>\n    <ol>\n      <li><strong>Initialisation<\/strong> \u2014 \u00e9change de capabilities entre client et serveur (<em>initialize \/ initialized<\/em>)<\/li>\n      <li><strong>Op\u00e9ration<\/strong> \u2014 \u00e9changes normaux&nbsp;: le client appelle les outils, lit les ressources, etc.<\/li>\n      <li><strong>Fin de session<\/strong> \u2014 fermeture propre avec notification de shutdown<\/li>\n    <\/ol>\n\n    <h3>Les 3 primitives fondamentales<\/h3>\n\n    <h3>Tools \u2014 Les outils d'action<\/h3>\n    <p>Les Tools sont des fonctions que le LLM peut appeler pour effectuer des actions. C'est la primitive la plus utilis\u00e9e et la plus puissante.<\/p>\n    <ul>\n      <li><strong>D\u00e9finition<\/strong> \u2014 chaque tool poss\u00e8de un nom, une description en langage naturel, et un sch\u00e9ma JSON Schema d\u00e9crivant ses param\u00e8tres<\/li>\n      <li><strong>Ex\u00e9cution<\/strong> \u2014 le LLM d\u00e9cide d'appeler un tool, le client MCP transmet l'appel au serveur, le serveur ex\u00e9cute et renvoie le r\u00e9sultat<\/li>\n      <li><strong>Contr\u00f4le humain<\/strong> \u2014 par convention, les tools qui modifient l'\u00e9tat du monde (\u00e9criture, suppression, envoi) doivent \u00eatre approuv\u00e9s par l'utilisateur<\/li>\n      <li><strong>Exemples concrets<\/strong> \u2014 cr\u00e9er un fichier, ex\u00e9cuter une requ\u00eate SQL, appeler une API externe, envoyer un email<\/li>\n    <\/ul>\n\n    <h3>Resources \u2014 Les donn\u00e9es consultables<\/h3>\n    <p>Les Resources sont des donn\u00e9es expos\u00e9es par le serveur que le LLM peut consulter. Contrairement aux Tools, elles sont en lecture seule et identifi\u00e9es par une URI.<\/p>\n    <ul>\n      <li><strong>Statiques<\/strong> \u2014 un fichier de configuration, un document de r\u00e9f\u00e9rence, un sch\u00e9ma de base de donn\u00e9es<\/li>\n      <li><strong>Dynamiques<\/strong> \u2014 un flux de logs en temps r\u00e9el, des donn\u00e9es de capteurs IoT, le contenu actuel d'une page web<\/li>\n      <li><strong>Subscription<\/strong> \u2014 le client peut s'abonner aux changements d'une resource (notifications push)<\/li>\n      <li><strong>Chunking<\/strong> \u2014 les resources volumineuses peuvent \u00eatre lues par morceaux via cursor pagination<\/li>\n    <\/ul>\n\n    <h3>Prompts \u2014 Les mod\u00e8les de conversation<\/h3>\n    <p>Les Prompts sont des templates de conversation pr\u00e9-d\u00e9finis expos\u00e9s par le serveur. Ils permettent aux d\u00e9veloppeurs de packager des workflows complexes et de les rendre accessibles \u00e0 l'utilisateur via une interface standard.<\/p>\n    <ul>\n      <li><strong>Param\u00e9trables<\/strong> \u2014 un prompt peut accepter des arguments (ex&nbsp;: le nom d'un projet, une plage de dates)<\/li>\n      <li><strong>Multi-messages<\/strong> \u2014 un prompt peut d\u00e9finir toute une conversation initiale, pas seulement un message syst\u00e8me<\/li>\n      <li><strong>D\u00e9couverte<\/strong> \u2014 le client liste les prompts disponibles (<em>prompts\/list<\/em>) et peut les pr\u00e9senter dans une UI<\/li>\n    <\/ul>\n  <\/section>\n\n  <!-- CH 3 -->\n  <section class=\"chapter\" id=\"ch3\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">03<\/span>\n      <h2>Les Transports MCP<\/h2>\n    <\/div>\n\n    <h3>stdio \u2014 La solution locale<\/h3>\n    <p>Le transport stdio est le plus simple et le plus courant pour les serveurs MCP locaux. Le host lance le serveur MCP comme un sous-processus, et communique avec lui via stdin\/stdout. C'est le transport utilis\u00e9 par Claude Desktop.<\/p>\n    <ul>\n      <li><strong>Avantages<\/strong> \u2014 s\u00e9curit\u00e9 maximale (pas de r\u00e9seau), latence minimale, d\u00e9ploiement trivial<\/li>\n      <li><strong>Inconv\u00e9nients<\/strong> \u2014 limit\u00e9 \u00e0 la machine locale, un processus par serveur<\/li>\n      <li><strong>Cas d'usage<\/strong> \u2014 acc\u00e8s au filesystem, outils de d\u00e9veloppement, bases de donn\u00e9es locales<\/li>\n    <\/ul>\n\n    <h3>HTTP + SSE \u2014 Le transport distant<\/h3>\n    <p>Pour les serveurs MCP h\u00e9berg\u00e9s \u00e0 distance (SaaS, APIs d'entreprise, microservices), MCP utilise HTTP avec Server-Sent Events (SSE). Les requ\u00eates client-vers-serveur passent par HTTP POST, et le serveur pousse ses r\u00e9ponses via SSE.<\/p>\n    <ul>\n      <li><strong>Avantages<\/strong> \u2014 d\u00e9ployable en cloud, accessible depuis n'importe o\u00f9, permet le multi-tenant<\/li>\n      <li><strong>Inconv\u00e9nients<\/strong> \u2014 latence r\u00e9seau, n\u00e9cessite authentification, plus complexe \u00e0 s\u00e9curiser<\/li>\n      <li><strong>\u00c9volution<\/strong> \u2014 <em>HTTP Streamable<\/em> annonc\u00e9 en mars 2025, unifiant request\/response et streaming dans un seul endpoint<\/li>\n    <\/ul>\n\n    <h3>L'authentification&nbsp;: le chantier ouvert<\/h3>\n    <p>La s\u00e9curit\u00e9 est l'un des points de friction du MCP actuel. La sp\u00e9cification pr\u00e9voit OAuth 2.1 pour les serveurs distants, mais l'impl\u00e9mentation reste complexe. Pour les serveurs locaux, la s\u00e9curit\u00e9 repose sur l'isolation des processus et les permissions du syst\u00e8me d'exploitation.<\/p>\n\n    <div class=\"callout warn\">\n      <span class=\"callout-label\">\u26a0 Point de vigilance<\/span>\n      Un serveur MCP malveillant pourrait tenter du prompt injection ou de l'exfiltration de donn\u00e9es. La confiance envers un serveur MCP est comparable \u00e0 la confiance envers un plugin de navigateur.\n    <\/div>\n  <\/section>\n\n  <!-- CH 4 -->\n  <section class=\"chapter\" id=\"ch4\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">04<\/span>\n      <h2>L'\u00c9cosyst\u00e8me MCP en 2025<\/h2>\n    <\/div>\n\n    <h3>Adoption par les grands acteurs<\/h3>\n    <p>En l'espace de quelques mois, le MCP est pass\u00e9 de projet open-source d'Anthropic \u00e0 standard de facto de l'industrie. Plusieurs signaux forts&nbsp;:<\/p>\n    <div class=\"table-wrap\">\n      <table>\n        <thead><tr><th>Acteur<\/th><th>Adoption<\/th><\/tr><\/thead>\n        <tbody>\n          <tr><td>OpenAI<\/td><td>Annonce en mars 2025 l'adoption de MCP dans l'API Responses et les Agents SDK<\/td><\/tr>\n          <tr><td>Microsoft<\/td><td>Int\u00e9gration dans Copilot Studio et Azure AI Foundry<\/td><\/tr>\n          <tr><td>Google DeepMind<\/td><td>Support natif dans Gemini pour Google Workspace<\/td><\/tr>\n          <tr><td>Cursor \/ Windsurf<\/td><td>Les IDEs IA adoptent MCP comme standard d'int\u00e9gration<\/td><\/tr>\n          <tr><td>Block, Replit, Sourcegraph<\/td><td>Premi\u00e8res entreprises partenaires d\u00e8s novembre 2024<\/td><\/tr>\n          <tr><td>Cloudflare<\/td><td>Workers AI supporte MCP nativement pour les serveurs edge<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n\n    <h3>Le registre de serveurs MCP<\/h3>\n    <p>Le d\u00e9p\u00f4t GitHub officiel <em>modelcontextprotocol\/servers<\/em> r\u00e9pertorie des dizaines de serveurs officiels. La communaut\u00e9 en a d\u00e9velopp\u00e9 des centaines d'autres. Les grandes cat\u00e9gories&nbsp;:<\/p>\n    <ul>\n      <li><strong>Productivit\u00e9<\/strong> \u2014 Slack, GitHub, Notion, Linear, Jira, Asana, Monday.com<\/li>\n      <li><strong>Bases de donn\u00e9es<\/strong> \u2014 PostgreSQL, SQLite, MySQL, MongoDB, Redis, Supabase<\/li>\n      <li><strong>Cloud &amp; infra<\/strong> \u2014 AWS, GCP, Azure, Kubernetes, Docker, Terraform<\/li>\n      <li><strong>D\u00e9veloppement<\/strong> \u2014 Git, npm, Docker, terminal shell, LSP<\/li>\n      <li><strong>Web &amp; scraping<\/strong> \u2014 Puppeteer, Playwright, Brave Search, Fetch<\/li>\n      <li><strong>Data &amp; BI<\/strong> \u2014 Tableau, Metabase, BigQuery, dbt<\/li>\n      <li><strong>M\u00e9dias &amp; contenu<\/strong> \u2014 YouTube, Spotify, Figma, Canva<\/li>\n    <\/ul>\n\n    <h3>Clients MCP disponibles<\/h3>\n    <div class=\"table-wrap\">\n      <table>\n        <thead><tr><th>Client<\/th><th>Contexte<\/th><\/tr><\/thead>\n        <tbody>\n          <tr><td>Claude Desktop<\/td><td>Premier client MCP grand public, int\u00e9gration native<\/td><\/tr>\n          <tr><td>Claude.ai (web)<\/td><td>Support MCP via connecteurs dans l'interface web<\/td><\/tr>\n          <tr><td>Cursor<\/td><td>IDE IA avec support MCP pour les outils de d\u00e9veloppement<\/td><\/tr>\n          <tr><td>Zed<\/td><td>\u00c9diteur de code avec int\u00e9gration MCP<\/td><\/tr>\n          <tr><td>Cline \/ Roo-Cline<\/td><td>Extension VSCode pour agents IA avec MCP<\/td><\/tr>\n          <tr><td>LibreChat<\/td><td>Frontend open-source compatible MCP<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n  <\/section>\n\n  <!-- CH 5 -->\n  <section class=\"chapter\" id=\"ch5\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">05<\/span>\n      <h2>M\u00e9caniques Avanc\u00e9es<\/h2>\n    <\/div>\n\n    <h3>Sampling \u2014 L'IA qui parle \u00e0 l'IA<\/h3>\n    <p>L'une des primitives les plus puissantes et les moins document\u00e9es de MCP est le <strong>Sampling<\/strong>. Il permet \u00e0 un serveur MCP de demander au LLM h\u00f4te de g\u00e9n\u00e9rer du texte, en lui passant une conversation et en r\u00e9cup\u00e9rant la r\u00e9ponse.<\/p>\n    <p>En clair&nbsp;: le serveur MCP peut invoquer le mod\u00e8le d'IA de fa\u00e7on r\u00e9cursive pour d\u00e9composer une t\u00e2che complexe, analyser un r\u00e9sultat interm\u00e9diaire, ou prendre une d\u00e9cision. Cela ouvre la voie \u00e0 des architectures d'agents multi-\u00e9tapes sans n\u00e9cessiter un framework externe.<\/p>\n\n    <div class=\"callout\">\n      <span class=\"callout-label\">Exemple concret<\/span>\n      Un serveur MCP de r\u00e9vision de code pourrait, apr\u00e8s avoir r\u00e9cup\u00e9r\u00e9 un diff Git, demander au LLM d'analyser les risques de s\u00e9curit\u00e9, puis dans un second appel de g\u00e9n\u00e9rer un message de commit appropri\u00e9 \u2014 le tout de fa\u00e7on transparente pour l'utilisateur.\n    <\/div>\n\n    <h3>Roots \u2014 La n\u00e9gociation de p\u00e9rim\u00e8tre<\/h3>\n    <p>Les <strong>Roots<\/strong> permettent au client d'indiquer au serveur MCP quels r\u00e9pertoires ou URIs il est autoris\u00e9 \u00e0 manipuler. C'est le m\u00e9canisme de sandboxing du protocole.<\/p>\n    <ul>\n      <li>Le client d\u00e9clare ses roots lors de l'initialisation<\/li>\n      <li>Le serveur devrait respecter ces limites (par convention, non enforced)<\/li>\n      <li>Exemple&nbsp;: permettre l'acc\u00e8s \u00e0 <em>\/home\/user\/projet<\/em> mais pas \u00e0 <em>\/home\/user\/.ssh<\/em><\/li>\n    <\/ul>\n\n    <h3>Capacit\u00e9s et n\u00e9gociation de version<\/h3>\n    <p>\u00c0 l'initialisation, client et serveur \u00e9changent leurs capabilities respectives. Cela permet une compatibilit\u00e9 ascendante&nbsp;: un serveur v2025 peut servir un client v2024 en n'utilisant que les fonctionnalit\u00e9s que ce dernier comprend.<\/p>\n    <div class=\"table-wrap\">\n      <table>\n        <thead><tr><th>Capability<\/th><th>Signification<\/th><\/tr><\/thead>\n        <tbody>\n          <tr><td>experimental<\/td><td>Features en cours de standardisation<\/td><\/tr>\n          <tr><td>roots<\/td><td>Support des roots par le client<\/td><\/tr>\n          <tr><td>sampling<\/td><td>Support du sampling par le client<\/td><\/tr>\n          <tr><td>logging<\/td><td>Support des messages de log structur\u00e9s<\/td><\/tr>\n          <tr><td>resources.subscribe<\/td><td>Support des subscriptions aux ressources<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n  <\/section>\n\n  <!-- CH 6 -->\n  <section class=\"chapter\" id=\"ch6\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">06<\/span>\n      <h2>Construire un Serveur MCP<\/h2>\n    <\/div>\n\n    <h3>Le SDK Python \u2014 D\u00e9marrage rapide<\/h3>\n    <p>Le SDK Python officiel (<em>mcp<\/em> ou <em>fastmcp<\/em>) permet de cr\u00e9er un serveur MCP en quelques dizaines de lignes. L'approche FastMCP est la plus \u00e9l\u00e9gante&nbsp;:<\/p>\n\n    <div class=\"code-block\">\n      <span class=\"code-label\">Python \u00b7 FastMCP<\/span>\n      <pre><span class=\"kw\">from<\/span> mcp.server.fastmcp <span class=\"kw\">import<\/span> <span class=\"fn\">FastMCP<\/span>\n\nmcp = <span class=\"fn\">FastMCP<\/span>(<span class=\"str\">\"Mon Serveur MCP\"<\/span>)\n\n<span class=\"dec\">@mcp.tool()<\/span>\n<span class=\"kw\">def<\/span> <span class=\"fn\">rechercher_commandes<\/span>(client_id: str, statut: str = <span class=\"str\">\"tous\"<\/span>) -> list:\n    <span class=\"str\">\"\"\"Recherche les commandes d'un client dans la BDD.\"\"\"<\/span>\n    <span class=\"cmt\"># Votre logique m\u00e9tier ici<\/span>\n    <span class=\"kw\">return<\/span> db.query(client_id, statut)\n\n<span class=\"dec\">@mcp.resource(<span class=\"str\">\"commandes:\/\/{client_id}\"<\/span>)<\/span>\n<span class=\"kw\">def<\/span> <span class=\"fn\">get_commandes_client<\/span>(client_id: str) -> str:\n    <span class=\"kw\">return<\/span> json.dumps(db.get_all(client_id))<\/pre>\n    <\/div>\n\n    <h3>Bonnes pratiques de conception<\/h3>\n\n    <p><strong>Descriptions riches = meilleures d\u00e9cisions du LLM.<\/strong> La qualit\u00e9 de la description d'un tool est critique. Le LLM utilise cette description pour d\u00e9cider si et quand appeler le tool. Une description pauvre m\u00e8ne \u00e0 des erreurs d'utilisation.<\/p>\n\n    <div class=\"callout tip\">\n      <span class=\"callout-label\">Mauvais vs. Bon<\/span>\n      <strong>Mauvaise description&nbsp;:<\/strong> \"Lit un fichier.\"<br><br>\n      <strong>Bonne description&nbsp;:<\/strong> \"Lit le contenu d'un fichier texte depuis le filesystem local. Utiliser pour acc\u00e9der au code source, aux fichiers de configuration, ou \u00e0 tout document dont l'utilisateur a partag\u00e9 le chemin. Ne pas utiliser pour des URLs ou des ressources r\u00e9seau.\"\n    <\/div>\n\n    <h3>Granularit\u00e9 des tools<\/h3>\n    <ul>\n      <li>Un tool = une action atomique et bien d\u00e9finie<\/li>\n      <li>\u00c9viter les tools trop g\u00e9n\u00e9riques (\"faire quelque chose\") et trop sp\u00e9cifiques<\/li>\n      <li>Grouper les op\u00e9rations CRUD connexes dans le m\u00eame serveur pour la coh\u00e9rence<\/li>\n    <\/ul>\n\n    <h3>Gestion des erreurs<\/h3>\n    <ul>\n      <li>Toujours retourner un message d'erreur descriptif plut\u00f4t que lever une exception non catch\u00e9e<\/li>\n      <li>Distinguer les erreurs utilisateur (\"fichier non trouv\u00e9\") des erreurs syst\u00e8me<\/li>\n      <li>Utiliser le champ <em>isError<\/em> dans le r\u00e9sultat du tool pour signaler un \u00e9chec contr\u00f4l\u00e9<\/li>\n    <\/ul>\n  <\/section>\n\n  <!-- CH 7 -->\n  <section class=\"chapter\" id=\"ch7\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">07<\/span>\n      <h2>Limites Actuelles<\/h2>\n    <\/div>\n\n    <h3>Limitations techniques<\/h3>\n    <div class=\"table-wrap\">\n      <table>\n        <thead><tr><th>Limitation<\/th><th>Impact<\/th><\/tr><\/thead>\n        <tbody>\n          <tr><td>Pas de stateful sessions<\/td><td>Chaque appel tool est stateless. Pas de transaction MCP native englobant plusieurs appels.<\/td><\/tr>\n          <tr><td>Pas d'ex\u00e9cution parall\u00e8le native<\/td><td>Les appels tools sont s\u00e9quentiels c\u00f4t\u00e9 protocole. La parall\u00e9lisation doit \u00eatre g\u00e9r\u00e9e au niveau applicatif.<\/td><\/tr>\n          <tr><td>Streaming des r\u00e9sultats limit\u00e9<\/td><td>Un tool ne peut pas streamer sa r\u00e9ponse. Pour des t\u00e2ches longues, il faut passer par les resource subscriptions.<\/td><\/tr>\n          <tr><td>Discovery centralis\u00e9e absente<\/td><td>Pas de registre officiel pour trouver et installer des serveurs MCP tiers.<\/td><\/tr>\n          <tr><td>Pas de versioning des tools<\/td><td>Un serveur MCP ne peut pas exposer plusieurs versions d'un m\u00eame tool. Les changements breaking n\u00e9cessitent un nouveau serveur.<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n\n    <h3>Limitations s\u00e9curit\u00e9<\/h3>\n    <p>La s\u00e9curit\u00e9 du MCP repose sur la confiance. Quelques vecteurs d'attaque importants \u00e0 conna\u00eetre&nbsp;:<\/p>\n    <ul>\n      <li><strong>Tool poisoning<\/strong> \u2014 un serveur MCP malveillant peut inclure des instructions cach\u00e9es dans les descriptions de tools pour manipuler le LLM<\/li>\n      <li><strong>Rug pull<\/strong> \u2014 un serveur initialement b\u00e9nin peut \u00eatre mis \u00e0 jour avec un comportement malveillant<\/li>\n      <li><strong>Exfiltration de contexte<\/strong> \u2014 un tool peut acc\u00e9der au contexte complet de la conversation si le host n'isole pas les informations<\/li>\n      <li><strong>Escalade de privil\u00e8ges<\/strong> \u2014 un serveur peut tenter d'acc\u00e9der \u00e0 des resources au-del\u00e0 des roots d\u00e9clar\u00e9es<\/li>\n    <\/ul>\n\n    <div class=\"callout warn\">\n      <span class=\"callout-label\">R\u00e8gle d'or<\/span>\n      N'installer que des serveurs MCP dont vous faites confiance \u00e0 l'auteur, comme vous n'installez que des extensions VS Code d'\u00e9diteurs reconnus.\n    <\/div>\n  <\/section>\n\n  <!-- CH 8 -->\n  <section class=\"chapter\" id=\"ch8\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">08<\/span>\n      <h2>\u00c9volutions Possibles &amp; Tendances<\/h2>\n    <\/div>\n\n    <h3>MCP 2.0&nbsp;: ce qui est d\u00e9j\u00e0 en cours<\/h3>\n\n    <p><strong>HTTP Streamable (mars 2025).<\/strong> Le transport HTTP + SSE actuel impose deux endpoints distincts (GET pour SSE, POST pour les requ\u00eates). HTTP Streamable unifie cela&nbsp;: un seul endpoint POST qui peut retourner soit une r\u00e9ponse HTTP classique, soit un stream SSE selon le cas. Cela simplifie le d\u00e9ploiement et rend MCP compatible avec les proxies et loadbalancers standard.<\/p>\n\n    <p><strong>Structured Tool Output.<\/strong> Actuellement, le r\u00e9sultat d'un tool est du texte libre. Une \u00e9volution attendue est la possibilit\u00e9 de d\u00e9finir un JSON Schema pour la sortie d'un tool, permettant au LLM de traiter des donn\u00e9es structur\u00e9es sans avoir \u00e0 les parser depuis du texte.<\/p>\n\n    <p><strong>Elicitation (demande d'input utilisateur).<\/strong> Un serveur MCP pourra bient\u00f4t demander une entr\u00e9e interactive \u00e0 l'utilisateur en cours d'ex\u00e9cution (\"Quel est votre token API&nbsp;?\", \"Confirmez-vous la suppression&nbsp;?\"). Cela permet des flux de travail multi-\u00e9tapes avec validation humaine sans casser le protocole.<\/p>\n\n    <h3>Multi-agent et orchestration<\/h3>\n    <p>L'\u00e9volution la plus structurante de MCP sera sa place dans les architectures multi-agents. Deux directions se dessinent&nbsp;:<\/p>\n\n    <p><strong>MCP agent-\u00e0-agent.<\/strong> Un agent IA peut lui-m\u00eame \u00eatre expos\u00e9 comme un serveur MCP. Un orchestrateur (\"agent manager\") peut ainsi d\u00e9l\u00e9guer des sous-t\u00e2ches \u00e0 des agents sp\u00e9cialis\u00e9s via le protocole MCP standard. C'est l'architecture qui \u00e9merge dans des frameworks comme LangGraph ou les Agents SDK.<\/p>\n\n    <div class=\"callout\">\n      <span class=\"callout-label\">Exemple d'architecture<\/span>\n      Un agent \"chef de projet\" expose des tools pour cr\u00e9er des tickets. Il d\u00e9l\u00e8gue via MCP \u00e0 un agent \"d\u00e9veloppeur\" qui a acc\u00e8s au codebase, et \u00e0 un agent \"QA\" qui ex\u00e9cute les tests. Chaque agent est un serveur MCP ind\u00e9pendant.\n    <\/div>\n\n    <h3>MCP et la m\u00e9moire persistante<\/h3>\n    <p>L'\u00e9tat actuel de MCP est fondamentalement stateless \u2014 chaque session repart de z\u00e9ro. Les \u00e9volutions vers la m\u00e9moire persistante passent par deux vecteurs&nbsp;:<\/p>\n    <ul>\n      <li><strong>Serveurs MCP de m\u00e9moire<\/strong> \u2014 des serveurs d\u00e9di\u00e9s (mem0, Memory Bank) exposent des tools pour sauvegarder et r\u00e9cup\u00e9rer des faits, des pr\u00e9f\u00e9rences utilisateur, des r\u00e9sultats de sessions pr\u00e9c\u00e9dentes<\/li>\n      <li><strong>Native persistence<\/strong> \u2014 une \u00e9volution possible serait une primitive de session avec \u00e9tat, o\u00f9 le serveur peut maintenir un contexte entre plusieurs appels du m\u00eame utilisateur<\/li>\n    <\/ul>\n    <p>Dans Claude.ai, la m\u00e9moire utilisateur actuelle est d\u00e9j\u00e0 un exemple de ce pattern&nbsp;: un syst\u00e8me de m\u00e9moire externe expos\u00e9 comme ressource contextuelle.<\/p>\n\n    <h3>MCP dans les navigateurs<\/h3>\n    <p>La version web de Claude teste actuellement une int\u00e9gration navigateur (Claude in Chrome). Le MCP pourrait y jouer un r\u00f4le central&nbsp;: une extension de navigateur expose un serveur MCP qui donne \u00e0 l'IA acc\u00e8s au DOM, aux onglets, aux cookies, \u00e0 la navigation, aux formulaires \u2014 rempla\u00e7ant les approches bricol\u00e9es de Puppeteer\/Playwright.<\/p>\n\n    <h3>Vers un mod\u00e8le de confiance \u00e9tendu<\/h3>\n    <p>La gestion des donn\u00e9es sensibles est le prochain grand chantier&nbsp;:<\/p>\n    <ul>\n      <li><strong>Chiffrement de bout en bout<\/strong> des r\u00e9sultats de tools&nbsp;: le LLM re\u00e7oit des donn\u00e9es sans que le host puisse les lire<\/li>\n      <li><strong>Attestation cryptographique<\/strong>&nbsp;: un serveur MCP peut prouver son identit\u00e9 et son int\u00e9grit\u00e9 via une signature<\/li>\n      <li><strong>Policy as code<\/strong>&nbsp;: les permissions d'un serveur MCP d\u00e9finies dans un fichier de politique versionn\u00e9<\/li>\n      <li><strong>Audit trail standardis\u00e9<\/strong>&nbsp;: un log immuable de tous les appels MCP pour la conformit\u00e9 r\u00e9glementaire (RGPD, ISO 27001)<\/li>\n    <\/ul>\n  <\/section>\n\n  <!-- CH 9 -->\n  <section class=\"chapter\" id=\"ch9\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">09<\/span>\n      <h2>MCP vs. Autres Standards<\/h2>\n    <\/div>\n\n    <h3>MCP vs. Function Calling (OpenAI)<\/h3>\n    <div class=\"compare-grid\">\n      <div class=\"compare-card\">\n        <h4>Function Calling OpenAI<\/h4>\n        <ul>\n          <li>P\u00e9rim\u00e8tre d\u00e9fini par la requ\u00eate API, recharg\u00e9 \u00e0 chaque appel<\/li>\n          <li>Coupl\u00e9 \u00e0 l'API OpenAI (HTTPS)<\/li>\n          <li>Propri\u00e9taire \u2014 migration co\u00fbteuse si changement de LLM<\/li>\n          <li>Tools d\u00e9finis dans le code client, non r\u00e9utilisables<\/li>\n        <\/ul>\n      <\/div>\n      <div class=\"compare-card\">\n        <h4>MCP<\/h4>\n        <ul>\n          <li>P\u00e9rim\u00e8tre g\u00e9r\u00e9 par le serveur MCP, persistant entre les requ\u00eates<\/li>\n          <li>stdio, HTTP+SSE \u2014 agnostique du LLM<\/li>\n          <li>Open standard \u2014 fonctionne avec Claude, GPT, Gemini, LLaMA\u2026<\/li>\n          <li>Un serveur MCP branchable sur n'importe quel client<\/li>\n        <\/ul>\n      <\/div>\n    <\/div>\n\n    <h3>MCP vs. LangChain Tools<\/h3>\n    <p>LangChain a longtemps domin\u00e9 l'espace des int\u00e9grations IA. Mais son mod\u00e8le pr\u00e9sente des frottements que MCP r\u00e9sout&nbsp;:<\/p>\n    <ul>\n      <li>LangChain est un <strong>framework applicatif<\/strong>&nbsp;: votre code d\u00e9pend de LangChain. MCP est un <strong>protocole<\/strong>&nbsp;: votre code d\u00e9pend uniquement de la spec JSON<\/li>\n      <li>LangChain tools vivent dans le m\u00eame processus que le LLM. Les serveurs MCP sont des processus ind\u00e9pendants, plus faciles \u00e0 tester et \u00e0 s\u00e9curiser<\/li>\n      <li>LangChain impose Python. MCP supporte nativement Python, TypeScript, et par extension tout langage capable de JSON-RPC<\/li>\n    <\/ul>\n    <p>LangChain a d'ailleurs annonc\u00e9 un support MCP natif, reconnaissant la compl\u00e9mentarit\u00e9 des deux approches.<\/p>\n\n    <h3>MCP vs. A2A (Google Agent-to-Agent Protocol)<\/h3>\n    <p>En avril 2025, Google a publi\u00e9 le protocole A2A, visant \u00e0 standardiser la communication entre agents IA de diff\u00e9rents fournisseurs. MCP et A2A sont compl\u00e9mentaires, pas concurrents&nbsp;:<\/p>\n    <div class=\"table-wrap\">\n      <table>\n        <thead><tr><th>Protocole<\/th><th>R\u00f4le<\/th><\/tr><\/thead>\n        <tbody>\n          <tr><td>MCP<\/td><td>Connecte un agent \u00e0 des tools et des resources (IA \u2192 outils)<\/td><\/tr>\n          <tr><td>A2A<\/td><td>Connecte des agents entre eux (IA \u2192 IA)<\/td><\/tr>\n          <tr><td>Relation<\/td><td>Un agent A2A peut exposer ses capacit\u00e9s via MCP. MCP peut servir de transport pour A2A.<\/td><\/tr>\n        <\/tbody>\n      <\/table>\n    <\/div>\n  <\/section>\n\n  <!-- CH 10 -->\n  <section class=\"chapter\" id=\"ch10\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">10<\/span>\n      <h2>Implications Strat\u00e9giques<\/h2>\n    <\/div>\n\n    <h3>Pour les entreprises<\/h3>\n\n    <p><strong>R\u00e9duction du lock-in.<\/strong> En exposant vos donn\u00e9es et outils via des serveurs MCP, vous n'\u00eates plus li\u00e9s \u00e0 un LLM particulier. Si Claude devient trop cher ou que GPT-5 offre de meilleures performances pour votre cas d'usage, la migration est d\u00e9sormais une question de configuration du client, pas de r\u00e9\u00e9criture d'int\u00e9grations.<\/p>\n\n    <p><strong>IA interne et donn\u00e9es sensibles.<\/strong> Des serveurs MCP d\u00e9ploy\u00e9s on-premise peuvent exposer des donn\u00e9es sensibles (RH, finances, R&amp;D) uniquement \u00e0 des LLMs auto-h\u00e9berg\u00e9s (LLaMA, Mistral, etc.), sans que les donn\u00e9es ne quittent votre infrastructure. C'est un pattern <em>souverainet\u00e9 des donn\u00e9es<\/em>.<\/p>\n\n    <p><strong>Le nouveau tier applicatif.<\/strong> On peut voir les serveurs MCP comme un nouveau tier dans l'architecture logicielle&nbsp;: apr\u00e8s le tier donn\u00e9es (bases de donn\u00e9es) et le tier applicatif (APIs REST), le <em>tier contexte<\/em> (serveurs MCP) expose vos capacit\u00e9s m\u00e9tier aux agents IA. C'est un nouvel actif \u00e0 d\u00e9velopper et \u00e0 maintenir.<\/p>\n\n    <h3>Pour les d\u00e9veloppeurs<\/h3>\n    <ul>\n      <li>Les serveurs MCP deviennent un produit livrable \u00e0 part enti\u00e8re, au m\u00eame titre qu'une API REST ou un package npm<\/li>\n      <li>La comp\u00e9tence MCP (conception de tools, optimisation des descriptions, s\u00e9curit\u00e9) est une comp\u00e9tence diff\u00e9renciante<\/li>\n      <li>Les frameworks comme FastMCP r\u00e9duisent la barri\u00e8re d'entr\u00e9e \u00e0 quelques dizaines de lignes<\/li>\n      <li>L'\u00e9mergence d'un march\u00e9 de serveurs MCP premium ou SaaS (\"MCP as a Service\") est pr\u00e9visible<\/li>\n    <\/ul>\n\n    <h3>Pour les \u00e9diteurs de logiciels<\/h3>\n    <p>Exposer un serveur MCP officiel devient un avantage comp\u00e9titif. Les entreprises comme Linear, Notion, ou Figma qui ont d\u00e9j\u00e0 un MCP officiel capturent une part de valeur dans l'\u00e9cosyst\u00e8me agentic. Les \u00e9diteurs qui n'ont pas de MCP risquent d'\u00eatre contourn\u00e9s par des serveurs tiers qui acc\u00e8dent \u00e0 leurs APIs.<\/p>\n\n    <div class=\"callout tip\">\n      <span class=\"callout-label\">Vision 2026<\/span>\n      L'App Store des agents IA. Chaque application SaaS publie son serveur MCP officiel dans un registre central. Installer une nouvelle application, c'est aussi donner \u00e0 votre agent IA la capacit\u00e9 de l'utiliser.\n    <\/div>\n  <\/section>\n\n  <!-- CONCLUSION -->\n  <section class=\"chapter\" id=\"conclusion\">\n    <div class=\"chapter-header\">\n      <span class=\"chapter-num\">\u2014<\/span>\n      <h2>Conclusion<\/h2>\n    <\/div>\n\n    <p>Le Model Context Protocol est plus qu'un standard technique. Il repr\u00e9sente une <strong>rupture architecturale<\/strong> dans la fa\u00e7on dont nous concevons les syst\u00e8mes d'information \u00e0 l'\u00e8re des agents IA. En standardisant l'interface entre les LLMs et le monde ext\u00e9rieur, il r\u00e9pond \u00e0 une question fondamentale&nbsp;: comment rendre l'IA utile dans des contextes r\u00e9els, avec des donn\u00e9es r\u00e9elles, sans compromettre la s\u00e9curit\u00e9 et la maintenabilit\u00e9&nbsp;?<\/p>\n\n    <p>La rapidit\u00e9 de l'adoption \u2014 de la publication par Anthropic en novembre 2024 \u00e0 l'adoption par OpenAI, Microsoft et Google en quelques mois \u2014 est sans pr\u00e9c\u00e9dent pour un protocole de cette nature. Elle r\u00e9v\u00e8le un besoin longtemps non satisfait et une fen\u00eatre d'opportunit\u00e9 pour tous ceux qui comprennent et ma\u00eetrisent ce standard.<\/p>\n\n    <p>Les \u00e9volutions \u00e0 venir \u2014 sessions persistantes, orchestration multi-agents, s\u00e9curit\u00e9 renforc\u00e9e, registre centralis\u00e9 \u2014 transformeront progressivement MCP d'un protocole d'int\u00e9gration en une <strong>infrastructure critique de l'\u00e9conomie num\u00e9rique<\/strong>. Comme HTTP pour le web, ou TCP\/IP pour les r\u00e9seaux, MCP a le potentiel de devenir le protocole invisible sur lequel repose l'\u00e8re des agents.<\/p>\n\n    <div class=\"takeaways\">\n      <div class=\"takeaway-card blue\">\n        <span class=\"tc-icon\">\u2b21<\/span>\n        <h4>Ma\u00eetriser les 3 primitives<\/h4>\n        <p>Tools, Resources, Prompts \u2014 comprendre quand et comment les combiner<\/p>\n      <\/div>\n      <div class=\"takeaway-card orange\">\n        <span class=\"tc-icon\">\u2b21<\/span>\n        <h4>D\u00e9ployer un 1er serveur<\/h4>\n        <p>Commencer par FastMCP et un cas d'usage m\u00e9tier simple<\/p>\n      <\/div>\n      <div class=\"takeaway-card red\">\n        <span class=\"tc-icon\">\u2b21<\/span>\n        <h4>S\u00e9curiser les acc\u00e8s<\/h4>\n        <p>Roots, OAuth 2.1, audit trail \u2014 ne pas n\u00e9gliger la s\u00e9curit\u00e9 d\u00e8s le d\u00e9but<\/p>\n      <\/div>\n      <div class=\"takeaway-card green\">\n        <span class=\"tc-icon\">\u2b21<\/span>\n        <h4>Anticiper le multi-agent<\/h4>\n        <p>Concevoir vos serveurs MCP comme des agents autonomes composables<\/p>\n      <\/div>\n    <\/div>\n  <\/section>\n\n  <div class=\"doc-footer\">\n    Document g\u00e9n\u00e9r\u00e9 avec Claude \u00b7 Askem 2025 \u00b7 <a href=\"https:\/\/askem.eu\/en\/\">askem.eu<\/a>\n  <\/div>\n\n<\/main>\n\n<div id=\"reading-pos\">0%<\/div>\n\n<script>\n  \/\/ Progress bar + reading position\n  window.addEventListener('scroll', () => {\n    const scrollTop = window.scrollY;\n    const docHeight = document.documentElement.scrollHeight - window.innerHeight;\n    const progress = Math.min(100, (scrollTop \/ docHeight) * 100);\n    document.getElementById('progress-bar').style.width = progress + '%';\n    document.getElementById('reading-pos').textContent = Math.round(progress) + '%';\n\n    \/\/ Update active TOC item\n    const chapters = document.querySelectorAll('.chapter');\n    let active = null;\n    chapters.forEach(ch => {\n      const rect = ch.getBoundingClientRect();\n      if (rect.top <= 100) active = ch.id;\n    });\n    document.querySelectorAll('.toc-item').forEach(a => {\n      a.classList.toggle('active', a.getAttribute('href') === '#' + active);\n    });\n  });\n\n  \/\/ TOC toggle\n  function toggleToc() {\n    document.getElementById('toc-panel').classList.toggle('open');\n  }\n\n  \/\/ Close TOC when clicking a link\n  document.querySelectorAll('.toc-item').forEach(a => {\n    a.addEventListener('click', () => {\n      document.getElementById('toc-panel').classList.remove('open');\n    });\n  });\n\n  \/\/ Close TOC when clicking outside\n  document.addEventListener('click', (e) => {\n    const panel = document.getElementById('toc-panel');\n    const toggle = document.getElementById('toc-toggle');\n    if (panel.classList.contains('open') &&&nbsp;!panel.contains(e.target) && e.target&nbsp;!== toggle) {\n      panel.classList.remove('open');\n    }\n  });\n<\/script>\n<\/body>\n<\/html>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>MCP \u2014 Cours Complet MCP | Model Context Protocol \u2261 Sommaire ~25 min Table des mati\u00e8res 01 Contexte &amp; Gen\u00e8se 02 Architecture Technique 03 Les Transports MCP 04 L&rsquo;\u00c9cosyst\u00e8me 2025 05 M\u00e9caniques Avanc\u00e9es 06 Construire un Serveur MCP 07 Limites Actuelles 08 \u00c9volutions Possibles 09 MCP vs. Autres Standards 10 Implications Strat\u00e9giques \u2014 Conclusion Cours [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","osh_disable_topbar_sticky":"default","osh_disable_header_sticky":"default","osh_sticky_header_style":"default","osh_sticky_header_effect":"","osh_custom_sticky_logo":0,"osh_custom_retina_sticky_logo":0,"osh_custom_sticky_logo_height":0,"osh_background_color":"","osh_links_color":"","osh_links_hover_color":"","osh_links_active_color":"","osh_links_bg_color":"","osh_links_hover_bg_color":"","osh_links_active_bg_color":"","osh_menu_social_links_color":"","osh_menu_social_hover_links_color":"","footnotes":""},"class_list":["post-2060","page","type-page","status-publish","hentry","entry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MCP - askem<\/title>\n<meta name=\"description\" content=\"ASKEM BUREAU D&#039;\u00c9TUDES ET DE FORMATION NUM\u00c9RIQUE. Nous vous assistons dans la transformation num\u00e9rique de vos outils, services et organisations tout en pla\u00e7ant l\u2019humain au c\u0153ur de notre d\u00e9marche d\u2019accompagnement.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/askem.eu\/en\/mcp\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MCP - askem\" \/>\n<meta property=\"og:description\" content=\"ASKEM BUREAU D&#039;\u00c9TUDES ET DE FORMATION NUM\u00c9RIQUE. Nous vous assistons dans la transformation num\u00e9rique de vos outils, services et organisations tout en pla\u00e7ant l\u2019humain au c\u0153ur de notre d\u00e9marche d\u2019accompagnement.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/askem.eu\/en\/mcp\/\" \/>\n<meta property=\"og:site_name\" content=\"askem\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/fb.me\/askem.eu\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-10T09:06:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/mlpi0fxo3sth.i.optimole.com\/cb:3obA.c61\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/askem.eu\/wp-content\/uploads\/2020\/09\/Logo-askem-final-blanc.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1417\" \/>\n\t<meta property=\"og:image:height\" content=\"389\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/askem.eu\\\/mcp\\\/\",\"url\":\"https:\\\/\\\/askem.eu\\\/mcp\\\/\",\"name\":\"MCP - askem\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/askem.eu\\\/#website\"},\"datePublished\":\"2026-03-10T09:05:20+00:00\",\"dateModified\":\"2026-03-10T09:06:00+00:00\",\"description\":\"ASKEM BUREAU D'\u00c9TUDES ET DE FORMATION NUM\u00c9RIQUE. Nous vous assistons dans la transformation num\u00e9rique de vos outils, services et organisations tout en pla\u00e7ant l\u2019humain au c\u0153ur de notre d\u00e9marche d\u2019accompagnement.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/askem.eu\\\/mcp\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/askem.eu\\\/mcp\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/askem.eu\\\/mcp\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/askem.eu\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MCP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/askem.eu\\\/#website\",\"url\":\"https:\\\/\\\/askem.eu\\\/\",\"name\":\"askem\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/askem.eu\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/askem.eu\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/askem.eu\\\/#organization\",\"name\":\"Askem\",\"url\":\"https:\\\/\\\/askem.eu\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/askem.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\/\\/mlpi0fxo3sth.i.optimole.com\\/cb:3obA.c61\\/w:760\\/h:480\\/q:mauto\\/f:best\\/https:\\/\\/askem.eu\\/wp-content\\/uploads\\/2020\\/10\\/logoGalaxieAskem3.png\",\"contentUrl\":\"https:\\/\\/mlpi0fxo3sth.i.optimole.com\\/cb:3obA.c61\\/w:760\\/h:480\\/q:mauto\\/f:best\\/https:\\/\\/askem.eu\\/wp-content\\/uploads\\/2020\\/10\\/logoGalaxieAskem3.png\",\"width\":760,\"height\":480,\"caption\":\"Askem\"},\"image\":{\"@id\":\"https:\\\/\\\/askem.eu\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/fb.me\\\/askem.eu\",\"https:\\\/\\\/linkedin.com\\\/company\\\/askem-eu\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MCP - askem","description":"ASKEM BUREAU D'\u00c9TUDES ET DE FORMATION NUM\u00c9RIQUE. Nous vous assistons dans la transformation num\u00e9rique de vos outils, services et organisations tout en pla\u00e7ant l\u2019humain au c\u0153ur de notre d\u00e9marche d\u2019accompagnement.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/askem.eu\/en\/mcp\/","og_locale":"en_US","og_type":"article","og_title":"MCP - askem","og_description":"ASKEM BUREAU D'\u00c9TUDES ET DE FORMATION NUM\u00c9RIQUE. Nous vous assistons dans la transformation num\u00e9rique de vos outils, services et organisations tout en pla\u00e7ant l\u2019humain au c\u0153ur de notre d\u00e9marche d\u2019accompagnement.","og_url":"https:\/\/askem.eu\/en\/mcp\/","og_site_name":"askem","article_publisher":"https:\/\/fb.me\/askem.eu","article_modified_time":"2026-03-10T09:06:00+00:00","og_image":[{"width":1417,"height":389,"url":"https:\/\/mlpi0fxo3sth.i.optimole.com\/cb:3obA.c61\/w:auto\/h:auto\/q:mauto\/f:best\/https:\/\/askem.eu\/wp-content\/uploads\/2020\/09\/Logo-askem-final-blanc.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/askem.eu\/mcp\/","url":"https:\/\/askem.eu\/mcp\/","name":"MCP - askem","isPartOf":{"@id":"https:\/\/askem.eu\/#website"},"datePublished":"2026-03-10T09:05:20+00:00","dateModified":"2026-03-10T09:06:00+00:00","description":"ASKEM BUREAU D'\u00c9TUDES ET DE FORMATION NUM\u00c9RIQUE. Nous vous assistons dans la transformation num\u00e9rique de vos outils, services et organisations tout en pla\u00e7ant l\u2019humain au c\u0153ur de notre d\u00e9marche d\u2019accompagnement.","breadcrumb":{"@id":"https:\/\/askem.eu\/mcp\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/askem.eu\/mcp\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/askem.eu\/mcp\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/askem.eu\/"},{"@type":"ListItem","position":2,"name":"MCP"}]},{"@type":"WebSite","@id":"https:\/\/askem.eu\/#website","url":"https:\/\/askem.eu\/","name":"askem","description":"","publisher":{"@id":"https:\/\/askem.eu\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/askem.eu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/askem.eu\/#organization","name":"Askem","url":"https:\/\/askem.eu\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/askem.eu\/#\/schema\/logo\/image\/","url":"https:\/\/mlpi0fxo3sth.i.optimole.com\/cb:3obA.c61\/w:760\/h:480\/q:mauto\/f:best\/https:\/\/askem.eu\/wp-content\/uploads\/2020\/10\/logoGalaxieAskem3.png","contentUrl":"https:\/\/mlpi0fxo3sth.i.optimole.com\/cb:3obA.c61\/w:760\/h:480\/q:mauto\/f:best\/https:\/\/askem.eu\/wp-content\/uploads\/2020\/10\/logoGalaxieAskem3.png","width":760,"height":480,"caption":"Askem"},"image":{"@id":"https:\/\/askem.eu\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/fb.me\/askem.eu","https:\/\/linkedin.com\/company\/askem-eu"]}]}},"_links":{"self":[{"href":"https:\/\/askem.eu\/en\/wp-json\/wp\/v2\/pages\/2060","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/askem.eu\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/askem.eu\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/askem.eu\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/askem.eu\/en\/wp-json\/wp\/v2\/comments?post=2060"}],"version-history":[{"count":5,"href":"https:\/\/askem.eu\/en\/wp-json\/wp\/v2\/pages\/2060\/revisions"}],"predecessor-version":[{"id":2065,"href":"https:\/\/askem.eu\/en\/wp-json\/wp\/v2\/pages\/2060\/revisions\/2065"}],"wp:attachment":[{"href":"https:\/\/askem.eu\/en\/wp-json\/wp\/v2\/media?parent=2060"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}