[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fdeveloppeurs\u002Fmcp":3,"docs-nav-fr":1925},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"body":10,"_type":1919,"_id":1920,"_source":1921,"_file":1922,"_stem":1923,"_extension":1924},"\u002Fdocs\u002Fdeveloppeurs\u002Fmcp","developpeurs",false,"","Piloter betool depuis Claude (MCP)","Branchez Claude, Claude Desktop ou toute application MCP sur betool (clé API ou OAuth 2.1) pour lire votre configuration et proposer des changements à valider.",{"type":11,"children":12,"toc":1905},"root",[13,65,79,114,177,184,287,292,319,325,330,821,838,843,864,1137,1167,1173,1185,1290,1295,1301,1313,1325,1343,1373,1378,1397,1441,1474,1493,1505,1561,1594,1604,1610,1634,1639,1697,1710,1747,1756,1775,1781,1806,1811,1817,1843,1849,1874,1880],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18,21,27,29,34,36,41,43,48,50,55,57,63],{"type":19,"value":20},"text","betool expose un ",{"type":14,"tag":22,"props":23,"children":24},"strong",{},[25],{"type":19,"value":26},"serveur MCP",{"type":19,"value":28}," (Model Context Protocol) : un client MCP externe — ",{"type":14,"tag":22,"props":30,"children":31},{},[32],{"type":19,"value":33},"Claude Code",{"type":19,"value":35},", ",{"type":14,"tag":22,"props":37,"children":38},{},[39],{"type":19,"value":40},"Claude Desktop",{"type":19,"value":42},", ou toute application compatible — peut ",{"type":14,"tag":22,"props":44,"children":45},{},[46],{"type":19,"value":47},"lire la configuration de votre organisation",{"type":19,"value":49}," et ",{"type":14,"tag":22,"props":51,"children":52},{},[53],{"type":19,"value":54},"proposer des changements en langage naturel",{"type":19,"value":56}," (créer\u002Féditer un pipeline, un rôle, une mission, une évaluation…). C'est l'équivalent d'un assistant qui configure betool ",{"type":14,"tag":58,"props":59,"children":60},"em",{},[61],{"type":19,"value":62},"avec",{"type":19,"value":64}," vous, sous gouvernance complète.",{"type":14,"tag":15,"props":66,"children":67},{},[68,70,77],{"type":19,"value":69},"Deux façons de se connecter, au même endpoint ",{"type":14,"tag":71,"props":72,"children":74},"code",{"className":73},[],[75],{"type":19,"value":76},"https:\u002F\u002Fplatform.betool.ai\u002Fmcp",{"type":19,"value":78}," :",{"type":14,"tag":80,"props":81,"children":82},"ul",{},[83,104],{"type":14,"tag":84,"props":85,"children":86},"li",{},[87,89,94,96,102],{"type":19,"value":88},"une ",{"type":14,"tag":22,"props":90,"children":91},{},[92],{"type":19,"value":93},"clé API MCP",{"type":19,"value":95}," dans l'en-tête ",{"type":14,"tag":71,"props":97,"children":99},{"className":98},[],[100],{"type":19,"value":101},"Authorization",{"type":19,"value":103}," — le plus simple pour Claude Code ;",{"type":14,"tag":84,"props":105,"children":106},{},[107,112],{"type":14,"tag":22,"props":108,"children":109},{},[110],{"type":19,"value":111},"OAuth 2.1 + PKCE",{"type":19,"value":113}," — pour les applications tierces, sans manipuler de secret.",{"type":14,"tag":115,"props":116,"children":118},"alert",{"type":117},"info",[119],{"type":14,"tag":15,"props":120,"children":121},{},[122,127,129,134,136,141,143,148,150,155,157,162,164,168,170,175],{"type":14,"tag":22,"props":123,"children":124},{},[125],{"type":19,"value":126},"Rien ne s'applique sans un accord explicite.",{"type":19,"value":128}," Toute modification passe par une ",{"type":14,"tag":22,"props":130,"children":131},{},[132],{"type":19,"value":133},"proposition",{"type":19,"value":135},". Avec le périmètre ",{"type":14,"tag":58,"props":137,"children":138},{},[139],{"type":19,"value":140},"Lecture + propositions",{"type":19,"value":142},", vous la validez d'un bouton ",{"type":14,"tag":22,"props":144,"children":145},{},[146],{"type":19,"value":147},"Accepter et appliquer",{"type":19,"value":149}," dans betool. Avec le périmètre ",{"type":14,"tag":58,"props":151,"children":152},{},[153],{"type":19,"value":154},"Complet",{"type":19,"value":156},", l'application peut résoudre ses propres propositions ",{"type":14,"tag":22,"props":158,"children":159},{},[160],{"type":19,"value":161},"après votre accord dans sa conversation",{"type":19,"value":163}," — c'est l'équivalent machine de ce bouton, réservé à ce périmètre et tracé comme le reste. Choisissez ",{"type":14,"tag":58,"props":165,"children":166},{},[167],{"type":19,"value":140},{"type":19,"value":169}," si vous voulez que la validation ait lieu ",{"type":14,"tag":22,"props":171,"children":172},{},[173],{"type":19,"value":174},"dans betool",{"type":19,"value":176},", et nulle part ailleurs.",{"type":14,"tag":178,"props":179,"children":181},"h2",{"id":180},"ce-que-claude-peut-faire",[182],{"type":19,"value":183},"Ce que Claude peut faire",{"type":14,"tag":80,"props":185,"children":186},{},[187,197,207,255,272],{"type":14,"tag":84,"props":188,"children":189},{},[190,195],{"type":14,"tag":22,"props":191,"children":192},{},[193],{"type":19,"value":194},"Lire",{"type":19,"value":196}," : inventaire des modèles, graphe et nœuds d'un pipeline, contrats de configuration, rôles\u002Fmissions, outils disponibles, base de connaissances.",{"type":14,"tag":84,"props":198,"children":199},{},[200,205],{"type":14,"tag":22,"props":201,"children":202},{},[203],{"type":19,"value":204},"Lire vos données",{"type":19,"value":206}," : les bases de données no-code de votre organisation — bases, tables, colonnes et lignes. Le client les découvre lui-même ; une clé n'est pas limitable à un sous-ensemble de bases.",{"type":14,"tag":84,"props":208,"children":209},{},[210,215,217,223,225,230,232,237,239,244,246,253],{"type":14,"tag":22,"props":211,"children":212},{},[213],{"type":19,"value":214},"Proposer",{"type":19,"value":216}," : via l'outil ",{"type":14,"tag":71,"props":218,"children":220},{"className":219},[],[221],{"type":19,"value":222},"proposals.create",{"type":19,"value":224},", une proposition de changement ",{"type":14,"tag":58,"props":226,"children":227},{},[228],{"type":19,"value":229},"en attente",{"type":19,"value":231}," — vous l'acceptez ou la refusez dans l'interface. Cela couvre aussi la ",{"type":14,"tag":22,"props":233,"children":234},{},[235],{"type":19,"value":236},"création d'un modèle",{"type":19,"value":238}," et le ",{"type":14,"tag":22,"props":240,"children":241},{},[242],{"type":19,"value":243},"lancement d'un benchmark",{"type":19,"value":245}," (voir ",{"type":14,"tag":247,"props":248,"children":250},"a",{"href":249},"#ce-qui-se-propose",[251],{"type":19,"value":252},"Ce qui se propose",{"type":19,"value":254},").",{"type":14,"tag":84,"props":256,"children":257},{},[258,263,265,270],{"type":14,"tag":22,"props":259,"children":260},{},[261],{"type":19,"value":262},"Écrire des données",{"type":19,"value":264}," ",{"type":14,"tag":58,"props":266,"children":267},{},[268],{"type":19,"value":269},"(périmètre Complet)",{"type":19,"value":271}," : créer, mettre à jour ou réserver une ligne d'une de vos bases, après votre accord explicite dans la conversation. Contrairement à la configuration, une écriture de donnée n'est pas versionnée — elle ne se restaure pas.",{"type":14,"tag":84,"props":273,"children":274},{},[275,280,281,285],{"type":14,"tag":22,"props":276,"children":277},{},[278],{"type":19,"value":279},"Parler à vos modèles",{"type":19,"value":264},{"type":14,"tag":58,"props":282,"children":283},{},[284],{"type":19,"value":269},{"type":19,"value":286}," : tenir une conversation multi-tours avec un modèle que vous avez explicitement ouvert aux agents externes — voir plus bas.",{"type":14,"tag":15,"props":288,"children":289},{},[290],{"type":19,"value":291},"Claude découvre le contrat exact de chaque nœud (champs, valeurs autorisées) avant de proposer : pas d'invention, pas de configuration invalide.",{"type":14,"tag":15,"props":293,"children":294},{},[295,297,302,304,310,312,317],{"type":19,"value":296},"Les ",{"type":14,"tag":22,"props":298,"children":299},{},[300],{"type":19,"value":301},"secrets",{"type":19,"value":303}," d'une configuration (secret HMAC, token, mot de passe) ne lui parviennent jamais : ",{"type":14,"tag":71,"props":305,"children":307},{"className":306},[],[308],{"type":19,"value":309},"models.inspect_pipeline",{"type":19,"value":311}," et les propositions les rendent ",{"type":14,"tag":22,"props":313,"children":314},{},[315],{"type":19,"value":316},"masqués",{"type":19,"value":318},". Une proposition qui renvoie une configuration telle qu'elle l'a lue conserve le secret enregistré, sans que l'IA l'ait vu.",{"type":14,"tag":178,"props":320,"children":322},{"id":321},"les-outils-exposés",[323],{"type":19,"value":324},"Les outils exposés",{"type":14,"tag":15,"props":326,"children":327},{},[328],{"type":19,"value":329},"Les outils sont regroupés par famille. Le client les découvre lui-même à la connexion ; ceux d'un connecteur n'apparaissent que si votre organisation l'utilise.",{"type":14,"tag":331,"props":332,"children":333},"table",{},[334,358],{"type":14,"tag":335,"props":336,"children":337},"thead",{},[338],{"type":14,"tag":339,"props":340,"children":341},"tr",{},[342,348,353],{"type":14,"tag":343,"props":344,"children":345},"th",{},[346],{"type":19,"value":347},"Famille",{"type":14,"tag":343,"props":349,"children":350},{},[351],{"type":19,"value":352},"Outils",{"type":14,"tag":343,"props":354,"children":355},{},[356],{"type":19,"value":357},"Rôle",{"type":14,"tag":359,"props":360,"children":361},"tbody",{},[362,445,513,560,621,653,709,756],{"type":14,"tag":339,"props":363,"children":364},{},[365,375,440],{"type":14,"tag":366,"props":367,"children":368},"td",{},[369],{"type":14,"tag":71,"props":370,"children":372},{"className":371},[],[373],{"type":19,"value":374},"models",{"type":14,"tag":366,"props":376,"children":377},{},[378,384,385,391,392,398,399,405,406,412,413,419,420,426,427,433,434],{"type":14,"tag":71,"props":379,"children":381},{"className":380},[],[382],{"type":19,"value":383},"list_models",{"type":19,"value":35},{"type":14,"tag":71,"props":386,"children":388},{"className":387},[],[389],{"type":19,"value":390},"lookup_model",{"type":19,"value":35},{"type":14,"tag":71,"props":393,"children":395},{"className":394},[],[396],{"type":19,"value":397},"list_groups",{"type":19,"value":35},{"type":14,"tag":71,"props":400,"children":402},{"className":401},[],[403],{"type":19,"value":404},"inspect_pipeline",{"type":19,"value":35},{"type":14,"tag":71,"props":407,"children":409},{"className":408},[],[410],{"type":19,"value":411},"list_contexts",{"type":19,"value":35},{"type":14,"tag":71,"props":414,"children":416},{"className":415},[],[417],{"type":19,"value":418},"get_pipeline_trace",{"type":19,"value":35},{"type":14,"tag":71,"props":421,"children":423},{"className":422},[],[424],{"type":19,"value":425},"get_exchange_metadata",{"type":19,"value":35},{"type":14,"tag":71,"props":428,"children":430},{"className":429},[],[431],{"type":19,"value":432},"automation_health",{"type":19,"value":35},{"type":14,"tag":71,"props":435,"children":437},{"className":436},[],[438],{"type":19,"value":439},"get_entry_endpoints",{"type":14,"tag":366,"props":441,"children":442},{},[443],{"type":19,"value":444},"Inventaire des modèles, lecture d'un pipeline et de ses exécutions, état des automatisations bloquées",{"type":14,"tag":339,"props":446,"children":447},{},[448,457,508],{"type":14,"tag":366,"props":449,"children":450},{},[451],{"type":14,"tag":71,"props":452,"children":454},{"className":453},[],[455],{"type":19,"value":456},"pipeline",{"type":14,"tag":366,"props":458,"children":459},{},[460,466,467,473,474,480,481,487,488,494,495,501,502],{"type":14,"tag":71,"props":461,"children":463},{"className":462},[],[464],{"type":19,"value":465},"list_node_kinds",{"type":19,"value":35},{"type":14,"tag":71,"props":468,"children":470},{"className":469},[],[471],{"type":19,"value":472},"lookup_node_contract",{"type":19,"value":35},{"type":14,"tag":71,"props":475,"children":477},{"className":476},[],[478],{"type":19,"value":479},"lookup_module",{"type":19,"value":35},{"type":14,"tag":71,"props":482,"children":484},{"className":483},[],[485],{"type":19,"value":486},"list_all_tools",{"type":19,"value":35},{"type":14,"tag":71,"props":489,"children":491},{"className":490},[],[492],{"type":19,"value":493},"list_config_options",{"type":19,"value":35},{"type":14,"tag":71,"props":496,"children":498},{"className":497},[],[499],{"type":19,"value":500},"list_schemas",{"type":19,"value":35},{"type":14,"tag":71,"props":503,"children":505},{"className":504},[],[506],{"type":19,"value":507},"validate",{"type":14,"tag":366,"props":509,"children":510},{},[511],{"type":19,"value":512},"Contrats des nœuds, options de configuration, validation d'un graphe avant proposition",{"type":14,"tag":339,"props":514,"children":515},{},[516,525,555],{"type":14,"tag":366,"props":517,"children":518},{},[519],{"type":14,"tag":71,"props":520,"children":522},{"className":521},[],[523],{"type":19,"value":524},"agents",{"type":14,"tag":366,"props":526,"children":527},{},[528,534,535,541,542,548,549],{"type":14,"tag":71,"props":529,"children":531},{"className":530},[],[532],{"type":19,"value":533},"list_roles",{"type":19,"value":35},{"type":14,"tag":71,"props":536,"children":538},{"className":537},[],[539],{"type":19,"value":540},"lookup_role",{"type":19,"value":35},{"type":14,"tag":71,"props":543,"children":545},{"className":544},[],[546],{"type":19,"value":547},"list_missions",{"type":19,"value":35},{"type":14,"tag":71,"props":550,"children":552},{"className":551},[],[553],{"type":19,"value":554},"lookup_mission",{"type":14,"tag":366,"props":556,"children":557},{},[558],{"type":19,"value":559},"Rôles et missions de vos agents",{"type":14,"tag":339,"props":561,"children":562},{},[563,572,616],{"type":14,"tag":366,"props":564,"children":565},{},[566],{"type":14,"tag":71,"props":567,"children":569},{"className":568},[],[570],{"type":19,"value":571},"benchmarks",{"type":14,"tag":366,"props":573,"children":574},{},[575,581,582,588,589,595,596,602,603,609,610],{"type":14,"tag":71,"props":576,"children":578},{"className":577},[],[579],{"type":19,"value":580},"list",{"type":19,"value":35},{"type":14,"tag":71,"props":583,"children":585},{"className":584},[],[586],{"type":19,"value":587},"get",{"type":19,"value":35},{"type":14,"tag":71,"props":590,"children":592},{"className":591},[],[593],{"type":19,"value":594},"list_check_kinds",{"type":19,"value":35},{"type":14,"tag":71,"props":597,"children":599},{"className":598},[],[600],{"type":19,"value":601},"list_runs",{"type":19,"value":35},{"type":14,"tag":71,"props":604,"children":606},{"className":605},[],[607],{"type":19,"value":608},"get_run",{"type":19,"value":35},{"type":14,"tag":71,"props":611,"children":613},{"className":612},[],[614],{"type":19,"value":615},"run_status",{"type":14,"tag":366,"props":617,"children":618},{},[619],{"type":19,"value":620},"Scénarios d'évaluation et résultats de leurs runs",{"type":14,"tag":339,"props":622,"children":623},{},[624,633,642],{"type":14,"tag":366,"props":625,"children":626},{},[627],{"type":14,"tag":71,"props":628,"children":630},{"className":629},[],[631],{"type":19,"value":632},"knowledge",{"type":14,"tag":366,"props":634,"children":635},{},[636],{"type":14,"tag":71,"props":637,"children":639},{"className":638},[],[640],{"type":19,"value":641},"search",{"type":14,"tag":366,"props":643,"children":644},{},[645,647],{"type":19,"value":646},"Recherche dans votre ",{"type":14,"tag":247,"props":648,"children":650},{"href":649},"\u002Fdocs\u002Fpipelines\u002Fbase-de-connaissances",[651],{"type":19,"value":652},"base de connaissances",{"type":14,"tag":339,"props":654,"children":655},{},[656,673,698],{"type":14,"tag":366,"props":657,"children":658},{},[659,665,667],{"type":14,"tag":71,"props":660,"children":662},{"className":661},[],[663],{"type":19,"value":664},"database_query",{"type":19,"value":666}," \u002F ",{"type":14,"tag":71,"props":668,"children":670},{"className":669},[],[671],{"type":19,"value":672},"database_manage",{"type":14,"tag":366,"props":674,"children":675},{},[676,678,684,685,691,692],{"type":19,"value":677},"lecture ; ",{"type":14,"tag":71,"props":679,"children":681},{"className":680},[],[682],{"type":19,"value":683},"create_row",{"type":19,"value":35},{"type":14,"tag":71,"props":686,"children":688},{"className":687},[],[689],{"type":19,"value":690},"update_row",{"type":19,"value":35},{"type":14,"tag":71,"props":693,"children":695},{"className":694},[],[696],{"type":19,"value":697},"claim_row",{"type":14,"tag":366,"props":699,"children":700},{},[701,703,707],{"type":19,"value":702},"Vos bases no-code (écriture : périmètre ",{"type":14,"tag":58,"props":704,"children":705},{},[706],{"type":19,"value":154},{"type":19,"value":708},")",{"type":14,"tag":339,"props":710,"children":711},{},[712,721,751],{"type":14,"tag":366,"props":713,"children":714},{},[715],{"type":14,"tag":71,"props":716,"children":718},{"className":717},[],[719],{"type":19,"value":720},"conversation",{"type":14,"tag":366,"props":722,"children":723},{},[724,730,731,737,738,744,745],{"type":14,"tag":71,"props":725,"children":727},{"className":726},[],[728],{"type":19,"value":729},"open",{"type":19,"value":35},{"type":14,"tag":71,"props":732,"children":734},{"className":733},[],[735],{"type":19,"value":736},"send",{"type":19,"value":35},{"type":14,"tag":71,"props":739,"children":741},{"className":740},[],[742],{"type":19,"value":743},"poll",{"type":19,"value":35},{"type":14,"tag":71,"props":746,"children":748},{"className":747},[],[749],{"type":19,"value":750},"history",{"type":14,"tag":366,"props":752,"children":753},{},[754],{"type":19,"value":755},"Parler à un modèle (voir plus bas)",{"type":14,"tag":339,"props":757,"children":758},{},[759,768,798],{"type":14,"tag":366,"props":760,"children":761},{},[762],{"type":14,"tag":71,"props":763,"children":765},{"className":764},[],[766],{"type":19,"value":767},"proposals",{"type":14,"tag":366,"props":769,"children":770},{},[771,777,778,784,785,791,792],{"type":14,"tag":71,"props":772,"children":774},{"className":773},[],[775],{"type":19,"value":776},"create",{"type":19,"value":35},{"type":14,"tag":71,"props":779,"children":781},{"className":780},[],[782],{"type":19,"value":783},"describe_kind",{"type":19,"value":35},{"type":14,"tag":71,"props":786,"children":788},{"className":787},[],[789],{"type":19,"value":790},"apply",{"type":19,"value":35},{"type":14,"tag":71,"props":793,"children":795},{"className":794},[],[796],{"type":19,"value":797},"reject",{"type":14,"tag":366,"props":799,"children":800},{},[801,803,808,809,814,816,820],{"type":19,"value":802},"Proposer un changement, lire son contrat, le résoudre (",{"type":14,"tag":71,"props":804,"children":806},{"className":805},[],[807],{"type":19,"value":790},{"type":19,"value":666},{"type":14,"tag":71,"props":810,"children":812},{"className":811},[],[813],{"type":19,"value":797},{"type":19,"value":815}," : périmètre ",{"type":14,"tag":58,"props":817,"children":818},{},[819],{"type":19,"value":154},{"type":19,"value":708},{"type":14,"tag":15,"props":822,"children":823},{},[824,829,830,836],{"type":14,"tag":22,"props":825,"children":826},{},[827],{"type":19,"value":828},"L'URL d'entrée d'un modèle, prête à coller.",{"type":19,"value":264},{"type":14,"tag":71,"props":831,"children":833},{"className":832},[],[834],{"type":19,"value":835},"models.get_entry_endpoints",{"type":19,"value":837}," rend l'URL publique complète de chaque récepteur déclaré sur le Start d'un modèle (webhook entrant, callback d'une plateforme de messagerie…) — de quoi la transmettre à un partenaire sans chercher le chemin dans l'interface.",{"type":14,"tag":178,"props":839,"children":841},{"id":840},"ce-qui-se-propose",[842],{"type":19,"value":252},{"type":14,"tag":15,"props":844,"children":845},{},[846,848,854,856,862],{"type":19,"value":847},"Toute modification de configuration passe par ",{"type":14,"tag":71,"props":849,"children":851},{"className":850},[],[852],{"type":19,"value":853},"proposals.create(kind, payload)",{"type":19,"value":855},". Avant d'écrire un payload, le client lit son contrat exact avec ",{"type":14,"tag":71,"props":857,"children":859},{"className":858},[],[860],{"type":19,"value":861},"proposals.describe_kind(kind)",{"type":19,"value":863},". Les kinds disponibles :",{"type":14,"tag":331,"props":865,"children":866},{},[867,883],{"type":14,"tag":335,"props":868,"children":869},{},[870],{"type":14,"tag":339,"props":871,"children":872},{},[873,878],{"type":14,"tag":343,"props":874,"children":875},{},[876],{"type":19,"value":877},"Kind",{"type":14,"tag":343,"props":879,"children":880},{},[881],{"type":19,"value":882},"Effet une fois accepté",{"type":14,"tag":359,"props":884,"children":885},{},[886,903,920,937,954,978,1002,1019,1043,1067,1098,1120],{"type":14,"tag":339,"props":887,"children":888},{},[889,898],{"type":14,"tag":366,"props":890,"children":891},{},[892],{"type":14,"tag":71,"props":893,"children":895},{"className":894},[],[896],{"type":19,"value":897},"model_create",{"type":14,"tag":366,"props":899,"children":900},{},[901],{"type":19,"value":902},"Crée un modèle (processus) — son libellé, sa description, son groupe",{"type":14,"tag":339,"props":904,"children":905},{},[906,915],{"type":14,"tag":366,"props":907,"children":908},{},[909],{"type":14,"tag":71,"props":910,"children":912},{"className":911},[],[913],{"type":19,"value":914},"model_update",{"type":14,"tag":366,"props":916,"children":917},{},[918],{"type":19,"value":919},"Modifie les métadonnées d'un modèle existant",{"type":14,"tag":339,"props":921,"children":922},{},[923,932],{"type":14,"tag":366,"props":924,"children":925},{},[926],{"type":14,"tag":71,"props":927,"children":929},{"className":928},[],[930],{"type":19,"value":931},"pipeline_edit",{"type":14,"tag":366,"props":933,"children":934},{},[935],{"type":19,"value":936},"Édite le graphe d'un modèle (ajout, modification, suppression de nœuds et de liens)",{"type":14,"tag":339,"props":938,"children":939},{},[940,949],{"type":14,"tag":366,"props":941,"children":942},{},[943],{"type":14,"tag":71,"props":944,"children":946},{"className":945},[],[947],{"type":19,"value":948},"pipeline_publish",{"type":14,"tag":366,"props":950,"children":951},{},[952],{"type":19,"value":953},"Publie l'état courant d'un modèle, après validation pré-publication",{"type":14,"tag":339,"props":955,"children":956},{},[957,966],{"type":14,"tag":366,"props":958,"children":959},{},[960],{"type":14,"tag":71,"props":961,"children":963},{"className":962},[],[964],{"type":19,"value":965},"pipeline_plan",{"type":14,"tag":366,"props":967,"children":968},{},[969,971,976],{"type":19,"value":970},"Enchaîne des éditions ",{"type":14,"tag":22,"props":972,"children":973},{},[974],{"type":19,"value":975},"puis",{"type":19,"value":977}," une publication sur un même modèle, en une seule acceptation, de façon atomique",{"type":14,"tag":339,"props":979,"children":980},{},[981,997],{"type":14,"tag":366,"props":982,"children":983},{},[984,990,991],{"type":14,"tag":71,"props":985,"children":987},{"className":986},[],[988],{"type":19,"value":989},"role_update",{"type":19,"value":666},{"type":14,"tag":71,"props":992,"children":994},{"className":993},[],[995],{"type":19,"value":996},"mission_update",{"type":14,"tag":366,"props":998,"children":999},{},[1000],{"type":19,"value":1001},"Crée ou modifie un rôle \u002F une mission d'agent",{"type":14,"tag":339,"props":1003,"children":1004},{},[1005,1014],{"type":14,"tag":366,"props":1006,"children":1007},{},[1008],{"type":14,"tag":71,"props":1009,"children":1011},{"className":1010},[],[1012],{"type":19,"value":1013},"knowledge_update",{"type":14,"tag":366,"props":1015,"children":1016},{},[1017],{"type":19,"value":1018},"Crée ou met à jour une fiche texte de la base de connaissances",{"type":14,"tag":339,"props":1020,"children":1021},{},[1022,1031],{"type":14,"tag":366,"props":1023,"children":1024},{},[1025],{"type":14,"tag":71,"props":1026,"children":1028},{"className":1027},[],[1029],{"type":19,"value":1030},"knowledge_document_replace",{"type":14,"tag":366,"props":1032,"children":1033},{},[1034,1036,1041],{"type":19,"value":1035},"Remplace le fichier d'un document de la base de connaissances, ",{"type":14,"tag":22,"props":1037,"children":1038},{},[1039],{"type":19,"value":1040},"en place",{"type":19,"value":1042}," : même identifiant, même lien public",{"type":14,"tag":339,"props":1044,"children":1045},{},[1046,1055],{"type":14,"tag":366,"props":1047,"children":1048},{},[1049],{"type":14,"tag":71,"props":1050,"children":1052},{"className":1051},[],[1053],{"type":19,"value":1054},"database_schema_edit",{"type":14,"tag":366,"props":1056,"children":1057},{},[1058,1060,1065],{"type":19,"value":1059},"Modifie la ",{"type":14,"tag":22,"props":1061,"children":1062},{},[1063],{"type":19,"value":1064},"structure",{"type":19,"value":1066}," d'une base no-code (bases, colonnes)",{"type":14,"tag":339,"props":1068,"children":1069},{},[1070,1093],{"type":14,"tag":366,"props":1071,"children":1072},{},[1073,1079,1080,1086,1087],{"type":14,"tag":71,"props":1074,"children":1076},{"className":1075},[],[1077],{"type":19,"value":1078},"benchmark_create",{"type":19,"value":666},{"type":14,"tag":71,"props":1081,"children":1083},{"className":1082},[],[1084],{"type":19,"value":1085},"benchmark_update",{"type":19,"value":666},{"type":14,"tag":71,"props":1088,"children":1090},{"className":1089},[],[1091],{"type":19,"value":1092},"benchmark_delete",{"type":14,"tag":366,"props":1094,"children":1095},{},[1096],{"type":19,"value":1097},"Gère les scénarios d'évaluation",{"type":14,"tag":339,"props":1099,"children":1100},{},[1101,1110],{"type":14,"tag":366,"props":1102,"children":1103},{},[1104],{"type":14,"tag":71,"props":1105,"children":1107},{"className":1106},[],[1108],{"type":19,"value":1109},"benchmark_run",{"type":14,"tag":366,"props":1111,"children":1112},{},[1113,1118],{"type":14,"tag":22,"props":1114,"children":1115},{},[1116],{"type":19,"value":1117},"Lance",{"type":19,"value":1119}," un run de benchmark — proposé, parce qu'un run consomme des crédits",{"type":14,"tag":339,"props":1121,"children":1122},{},[1123,1132],{"type":14,"tag":366,"props":1124,"children":1125},{},[1126],{"type":14,"tag":71,"props":1127,"children":1129},{"className":1128},[],[1130],{"type":19,"value":1131},"credit_topup",{"type":14,"tag":366,"props":1133,"children":1134},{},[1135],{"type":19,"value":1136},"Crédit manuel d'un solde — réservé à l'organisation opérateur de la plateforme, et validé par l'organisation créditée",{"type":14,"tag":15,"props":1138,"children":1139},{},[1140,1145,1146,1151,1153,1158,1160,1165],{"type":14,"tag":22,"props":1141,"children":1142},{},[1143],{"type":19,"value":1144},"Créer un processus de bout en bout = plusieurs accords.",{"type":19,"value":264},{"type":14,"tag":71,"props":1147,"children":1149},{"className":1148},[],[1150],{"type":19,"value":897},{"type":19,"value":1152}," crée l'instance ; un ",{"type":14,"tag":71,"props":1154,"children":1156},{"className":1155},[],[1157],{"type":19,"value":931},{"type":19,"value":1159}," câble ensuite son Start (avec ses récepteurs) et ses nœuds ; un ",{"type":14,"tag":71,"props":1161,"children":1163},{"className":1162},[],[1164],{"type":19,"value":948},{"type":19,"value":1166}," le met en service. Créer une instance et la câbler restent deux décisions humaines distinctes.",{"type":14,"tag":178,"props":1168,"children":1170},{"id":1169},"créer-une-clé-mcp",[1171],{"type":19,"value":1172},"Créer une clé MCP",{"type":14,"tag":15,"props":1174,"children":1175},{},[1176,1178,1183],{"type":19,"value":1177},"Réservé aux ",{"type":14,"tag":22,"props":1179,"children":1180},{},[1181],{"type":19,"value":1182},"administrateurs de l'organisation",{"type":19,"value":1184}," : une clé porte une autorité sur toute l'organisation.",{"type":14,"tag":1186,"props":1187,"children":1188},"ol",{},[1189,1201,1271],{"type":14,"tag":84,"props":1190,"children":1191},{},[1192,1194,1199],{"type":19,"value":1193},"Dans betool, ouvrez ",{"type":14,"tag":22,"props":1195,"children":1196},{},[1197],{"type":19,"value":1198},"Paramètres de l'organisation → MCP",{"type":19,"value":1200},".",{"type":14,"tag":84,"props":1202,"children":1203},{},[1204,1206,1211,1213,1218,1220],{"type":19,"value":1205},"Donnez un ",{"type":14,"tag":22,"props":1207,"children":1208},{},[1209],{"type":19,"value":1210},"nom",{"type":19,"value":1212}," à la clé et choisissez son ",{"type":14,"tag":22,"props":1214,"children":1215},{},[1216],{"type":19,"value":1217},"périmètre",{"type":19,"value":1219}," :\n",{"type":14,"tag":80,"props":1221,"children":1222},{},[1223,1240,1255],{"type":14,"tag":84,"props":1224,"children":1225},{},[1226,1231,1233,1238],{"type":14,"tag":22,"props":1227,"children":1228},{},[1229],{"type":19,"value":1230},"Lecture seule",{"type":19,"value":1232}," — lit la configuration ",{"type":14,"tag":22,"props":1234,"children":1235},{},[1236],{"type":19,"value":1237},"et les données de vos bases",{"type":19,"value":1239},", relit les fils ouverts par ce canal, ne propose rien ;",{"type":14,"tag":84,"props":1241,"children":1242},{},[1243,1247,1248,1253],{"type":14,"tag":22,"props":1244,"children":1245},{},[1246],{"type":19,"value":140},{"type":19,"value":264},{"type":14,"tag":58,"props":1249,"children":1250},{},[1251],{"type":19,"value":1252},"(recommandé)",{"type":19,"value":1254}," — lit et soumet des propositions, que vous validez dans betool ;",{"type":14,"tag":84,"props":1256,"children":1257},{},[1258,1262,1264,1269],{"type":14,"tag":22,"props":1259,"children":1260},{},[1261],{"type":19,"value":154},{"type":19,"value":1263}," — peut aussi résoudre ses propres propositions, ",{"type":14,"tag":22,"props":1265,"children":1266},{},[1267],{"type":19,"value":1268},"écrire dans vos bases de données et converser avec vos modèles",{"type":19,"value":1270},", après votre accord dans la conversation du client.",{"type":14,"tag":84,"props":1272,"children":1273},{},[1274,1276,1281,1283,1288],{"type":19,"value":1275},"La ",{"type":14,"tag":22,"props":1277,"children":1278},{},[1279],{"type":19,"value":1280},"clé brute n'est affichée qu'une seule fois",{"type":19,"value":1282}," — copiez-la immédiatement (elle n'est plus jamais relisible). Vous pouvez ",{"type":14,"tag":22,"props":1284,"children":1285},{},[1286],{"type":19,"value":1287},"révoquer",{"type":19,"value":1289}," une clé à tout moment.",{"type":14,"tag":15,"props":1291,"children":1292},{},[1293],{"type":19,"value":1294},"Les mêmes trois périmètres existent pour OAuth ; c'est vous qui les choisissez à l'écran de consentement.",{"type":14,"tag":178,"props":1296,"children":1298},{"id":1297},"brancher-claude-code",[1299],{"type":19,"value":1300},"Brancher Claude Code",{"type":14,"tag":15,"props":1302,"children":1303},{},[1304,1306,1311],{"type":19,"value":1305},"Ajoutez le serveur MCP betool à Claude Code (la clé passe dans l'en-tête ",{"type":14,"tag":71,"props":1307,"children":1309},{"className":1308},[],[1310],{"type":19,"value":101},{"type":19,"value":1312},") :",{"type":14,"tag":1314,"props":1315,"children":1320},"pre",{"className":1316,"code":1318,"language":1319,"meta":7},[1317],"language-bash","claude mcp add betool \\\n  --transport http \\\n  --header \"Authorization: Bearer \u003Cvotre-clé-MCP>\" \\\n  https:\u002F\u002Fplatform.betool.ai\u002Fmcp\n","bash",[1321],{"type":14,"tag":71,"props":1322,"children":1323},{"__ignoreMap":7},[1324],{"type":19,"value":1318},{"type":14,"tag":15,"props":1326,"children":1327},{},[1328,1330,1335,1337,1342],{"type":19,"value":1329},"Demandez ensuite à Claude, en langage naturel : ",{"type":14,"tag":58,"props":1331,"children":1332},{},[1333],{"type":19,"value":1334},"« inspecte mon pipeline X et propose une étape qui résume le ticket avant l'envoi »",{"type":19,"value":1336},". Claude lit la configuration, compose une proposition, et ",{"type":14,"tag":22,"props":1338,"children":1339},{},[1340],{"type":19,"value":1341},"vous la validez dans betool",{"type":19,"value":1200},{"type":14,"tag":115,"props":1344,"children":1346},{"type":1345},"warning",[1347],{"type":14,"tag":15,"props":1348,"children":1349},{},[1350,1352,1357,1359,1364,1366,1371],{"type":19,"value":1351},"Ne collez jamais de secret en clair dans le chat. Le périmètre de Claude est borné par le ",{"type":14,"tag":22,"props":1353,"children":1354},{},[1355],{"type":19,"value":1356},"scope de la clé",{"type":19,"value":1358},", et ",{"type":14,"tag":22,"props":1360,"children":1361},{},[1362],{"type":19,"value":1363},"chaque appel d'outil est tracé",{"type":19,"value":1365}," dans ",{"type":14,"tag":22,"props":1367,"children":1368},{},[1369],{"type":19,"value":1370},"Paramètres de l'organisation → MCP → Journal des appels d'outils",{"type":19,"value":1372}," (RGPD art. 15).",{"type":14,"tag":178,"props":1374,"children":1376},{"id":1375},"parler-à-vos-modèles",[1377],{"type":19,"value":279},{"type":14,"tag":15,"props":1379,"children":1380},{},[1381,1383,1388,1390,1395],{"type":19,"value":1382},"Lire et proposer, c'est ",{"type":14,"tag":22,"props":1384,"children":1385},{},[1386],{"type":19,"value":1387},"configurer",{"type":19,"value":1389}," betool. Une IA externe peut aussi ",{"type":14,"tag":22,"props":1391,"children":1392},{},[1393],{"type":19,"value":1394},"s'en servir",{"type":19,"value":1396}," : tenir une vraie conversation avec un de vos modèles, tour après tour, comme le ferait n'importe quel client sur votre chat. De quoi faire éprouver un assistant par une autre IA, brancher betool derrière un agent partenaire, ou laisser un outil interne interroger un de vos processus en langage naturel.",{"type":14,"tag":15,"props":1398,"children":1399},{},[1400,1402,1408,1410,1416,1418,1424,1426,1432,1434,1439],{"type":19,"value":1401},"Quatre outils : ",{"type":14,"tag":71,"props":1403,"children":1405},{"className":1404},[],[1406],{"type":19,"value":1407},"conversation.open",{"type":19,"value":1409}," ouvre ou retrouve un fil, ",{"type":14,"tag":71,"props":1411,"children":1413},{"className":1412},[],[1414],{"type":19,"value":1415},"conversation.send",{"type":19,"value":1417}," envoie un tour et rend la réponse, ",{"type":14,"tag":71,"props":1419,"children":1421},{"className":1420},[],[1422],{"type":19,"value":1423},"conversation.poll",{"type":19,"value":1425}," récupère une réponse qui a pris du temps, ",{"type":14,"tag":71,"props":1427,"children":1429},{"className":1428},[],[1430],{"type":19,"value":1431},"conversation.history",{"type":19,"value":1433}," relit le fil. Ce fil est un ",{"type":14,"tag":22,"props":1435,"children":1436},{},[1437],{"type":19,"value":1438},"contexte betool comme un autre",{"type":19,"value":1440}," : il apparaît dans vos conversations, le modèle y voit les tours précédents, et vous relisez tout dans l'interface.",{"type":14,"tag":115,"props":1442,"children":1443},{"type":1345},[1444],{"type":14,"tag":15,"props":1445,"children":1446},{},[1447,1452,1454,1459,1461,1465,1467,1472],{"type":14,"tag":22,"props":1448,"children":1449},{},[1450],{"type":19,"value":1451},"C'est le modèle qui autorise, jamais la clé.",{"type":19,"value":1453}," Il faut déclarer le récepteur ",{"type":14,"tag":22,"props":1455,"children":1456},{},[1457],{"type":19,"value":1458},"Agent externe",{"type":19,"value":1460}," sur le nœud Start du modèle : sans cette déclaration l'appel est refusé, y compris avec une clé de périmètre ",{"type":14,"tag":58,"props":1462,"children":1463},{},[1464],{"type":19,"value":154},{"type":19,"value":1466},". Les modèles créés depuis cette mise à disposition le déclarent par défaut (le chemin normal est le chemin facile) ; les plus anciens doivent l'ajouter, et n'importe lequel peut le retirer. C'est donc bien le modèle qui décide, jamais la clé — et le récepteur doit être présent dans la version ",{"type":14,"tag":22,"props":1468,"children":1469},{},[1470],{"type":19,"value":1471},"publiée",{"type":19,"value":1473},", celle qui tourne. Et comme un tour peut déclencher de vrais effets — un email qui part, une fiche créée —, il consomme les crédits de l'organisation et il est tracé comme tout appel d'outil.",{"type":14,"tag":15,"props":1475,"children":1476},{},[1477,1479,1484,1486,1491],{"type":19,"value":1478},"Une réponse n'est jamais perdue : si le modèle travaille plus longtemps que l'attente accordée, l'appel rend un ",{"type":14,"tag":22,"props":1480,"children":1481},{},[1482],{"type":19,"value":1483},"ticket",{"type":19,"value":1485}," et le tour continue côté serveur — il survit même à un redéploiement. L'application relit alors la réponse avec ",{"type":14,"tag":71,"props":1487,"children":1489},{"className":1488},[],[1490],{"type":19,"value":1423},{"type":19,"value":1492},". Renvoyer le message n'accélère rien — et pendant que le tour tourne, l'envoi est refusé.",{"type":14,"tag":15,"props":1494,"children":1495},{},[1496,1498,1503],{"type":19,"value":1497},"Enfin, ce canal ne lit que ",{"type":14,"tag":22,"props":1499,"children":1500},{},[1501],{"type":19,"value":1502},"ses propres fils",{"type":19,"value":1504},". Un identifiant de conversation venu d'une autre entrée — chat public, téléphone, email — n'est pas lisible ici : les échanges de vos clients ne deviennent pas consultables parce qu'une application MCP est branchée.",{"type":14,"tag":15,"props":1506,"children":1507},{},[1508,1513,1515,1521,1523,1529,1531,1537,1539,1545,1547,1552,1554,1559],{"type":14,"tag":22,"props":1509,"children":1510},{},[1511],{"type":19,"value":1512},"Un modèle déjà en place fonctionne sans être retouché.",{"type":19,"value":1514}," Ce canal pose les mêmes clés qu'un chat : le message arrive dans ",{"type":14,"tag":71,"props":1516,"children":1518},{"className":1517},[],[1519],{"type":19,"value":1520},"user_message",{"type":19,"value":1522}," et l'événement est un ",{"type":14,"tag":71,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":19,"value":1528},"on_message",{"type":19,"value":1530}," ordinaire — vos filtres et les sélections de vos agents continuent donc de marcher. Si le modèle visé a été écrit pour une autre entrée (il lit ",{"type":14,"tag":71,"props":1532,"children":1534},{"className":1533},[],[1535],{"type":19,"value":1536},"telegram.text",{"type":19,"value":1538},", un objectif, une variable de page…), l'application peut fournir ces clés elle-même via ",{"type":14,"tag":71,"props":1540,"children":1542},{"className":1541},[],[1543],{"type":19,"value":1544},"variables",{"type":19,"value":1546}," : elles entrent dans le flux là où l'autre entrée les aurait posées. Ce qu'elle ne peut pas falsifier, c'est ",{"type":14,"tag":22,"props":1548,"children":1549},{},[1550],{"type":19,"value":1551},"l'identité du tour",{"type":19,"value":1553}," — qui a parlé et par quel canal : ces clés sont posées par le serveur, et toute tentative est refusée ",{"type":14,"tag":58,"props":1555,"children":1556},{},[1557],{"type":19,"value":1558},"et signalée",{"type":19,"value":1560}," dans la réponse.",{"type":14,"tag":15,"props":1562,"children":1563},{},[1564,1569,1571,1577,1579,1585,1587,1592],{"type":14,"tag":22,"props":1565,"children":1566},{},[1567],{"type":19,"value":1568},"Si le modèle reste muet, regardez son routage.",{"type":19,"value":1570}," Un modèle qui sert plusieurs canaux branche en général sur l'entrée (",{"type":14,"tag":71,"props":1572,"children":1574},{"className":1573},[],[1575],{"type":19,"value":1576},"filter input.entry_kind == chat_widget",{"type":19,"value":1578},"…) : un tour arrivant avec l'entrée « agent externe » ne correspond alors à aucune branche, et rien ne répond — sans qu'aucune erreur ne soit levée. Passez ",{"type":14,"tag":71,"props":1580,"children":1582},{"className":1581},[],[1583],{"type":19,"value":1584},"as_entry_kind",{"type":19,"value":1586}," pour être ",{"type":14,"tag":22,"props":1588,"children":1589},{},[1590],{"type":19,"value":1591},"acheminé comme",{"type":19,"value":1593}," ce canal-là. Cela ne change que la clé de routage : le descripteur de canal et le journal d'audit continuent de dire que le tour vient d'une IA externe, et les capacités réelles du canal s'appliquent toujours.",{"type":14,"tag":15,"props":1595,"children":1596},{},[1597,1602],{"type":14,"tag":22,"props":1598,"children":1599},{},[1600],{"type":19,"value":1601},"Un fil traite un tour à la fois.",{"type":19,"value":1603}," Tant que le tour précédent n'a pas rendu sa réponse, le suivant est refusé avec l'identifiant du tour à relire. Ce n'est pas une limite arbitraire : une réponse est rattachée à sa question par sa position dans le fil, donc deux tours en vol rendraient l'attribution ambiguë — mieux vaut un refus clair qu'une réponse plausible et fausse.",{"type":14,"tag":178,"props":1605,"children":1607},{"id":1606},"brancher-une-application-tierce-oauth-21",[1608],{"type":19,"value":1609},"Brancher une application tierce (OAuth 2.1)",{"type":14,"tag":15,"props":1611,"children":1612},{},[1613,1615,1619,1621,1625,1627,1632],{"type":19,"value":1614},"Une clé en en-tête convient à Claude Code. Les autres clients — ",{"type":14,"tag":22,"props":1616,"children":1617},{},[1618],{"type":19,"value":40},{"type":19,"value":1620},", ChatGPT, un éditeur, votre propre application — se connectent par ",{"type":14,"tag":22,"props":1622,"children":1623},{},[1624],{"type":19,"value":111},{"type":19,"value":1626},", sans que personne ne manipule de secret. Vous n'avez rien à préparer : il n'y a ",{"type":14,"tag":22,"props":1628,"children":1629},{},[1630],{"type":19,"value":1631},"pas de client à déclarer",{"type":19,"value":1633},", ni d'identifiant à nous demander.",{"type":14,"tag":15,"props":1635,"children":1636},{},[1637],{"type":19,"value":1638},"Côté utilisateur, le parcours tient en trois écrans :",{"type":14,"tag":1186,"props":1640,"children":1641},{},[1642,1653,1679],{"type":14,"tag":84,"props":1643,"children":1644},{},[1645,1647,1652],{"type":19,"value":1646},"Dans l'application, ajoutez le serveur MCP ",{"type":14,"tag":71,"props":1648,"children":1650},{"className":1649},[],[1651],{"type":19,"value":76},{"type":19,"value":1200},{"type":14,"tag":84,"props":1654,"children":1655},{},[1656,1658,1663,1665,1670,1672,1677],{"type":19,"value":1657},"Votre navigateur s'ouvre sur un ",{"type":14,"tag":22,"props":1659,"children":1660},{},[1661],{"type":19,"value":1662},"écran de consentement betool",{"type":19,"value":1664}," : il nomme l'application qui demande l'accès, ",{"type":14,"tag":22,"props":1666,"children":1667},{},[1668],{"type":19,"value":1669},"l'organisation",{"type":19,"value":1671}," concernée, et ",{"type":14,"tag":22,"props":1673,"children":1674},{},[1675],{"type":19,"value":1676},"où le retour aura lieu",{"type":19,"value":1678},". Vérifiez ces trois informations — surtout si vous appartenez à plusieurs organisations.",{"type":14,"tag":84,"props":1680,"children":1681},{},[1682,1684,1688,1690,1695],{"type":19,"value":1683},"Choisissez le ",{"type":14,"tag":22,"props":1685,"children":1686},{},[1687],{"type":19,"value":1217},{"type":19,"value":1689}," que vous accordez, puis ",{"type":14,"tag":22,"props":1691,"children":1692},{},[1693],{"type":19,"value":1694},"Autoriser",{"type":19,"value":1696},". L'application ne reçoit jamais plus que ce que vous cochez, même si elle en avait demandé davantage.",{"type":14,"tag":115,"props":1698,"children":1699},{"type":1345},[1700],{"type":14,"tag":15,"props":1701,"children":1702},{},[1703,1708],{"type":14,"tag":22,"props":1704,"children":1705},{},[1706],{"type":19,"value":1707},"Seul un administrateur de l'organisation peut autoriser une application.",{"type":19,"value":1709}," Brancher une application crée une autorité durable sur toute l'organisation — exactement ce qu'est une clé MCP. Un membre aux droits limités ne peut donc pas contourner ses restrictions par cette porte.",{"type":14,"tag":15,"props":1711,"children":1712},{},[1713,1715,1721,1723,1729,1731,1737,1739,1745],{"type":19,"value":1714},"Pour les intégrateurs, la découverte est entièrement automatique et conforme aux RFC : un appel non authentifié sur ",{"type":14,"tag":71,"props":1716,"children":1718},{"className":1717},[],[1719],{"type":19,"value":1720},"\u002Fmcp",{"type":19,"value":1722}," renvoie un ",{"type":14,"tag":71,"props":1724,"children":1726},{"className":1725},[],[1727],{"type":19,"value":1728},"401",{"type":19,"value":1730}," portant l'en-tête ",{"type":14,"tag":71,"props":1732,"children":1734},{"className":1733},[],[1735],{"type":19,"value":1736},"WWW-Authenticate",{"type":19,"value":1738}," avec l'adresse de nos métadonnées (RFC 9728), lesquelles pointent l'autorisation, l'échange de jetons, l'enregistrement dynamique du client (RFC 7591) et la révocation (RFC 7009). PKCE ",{"type":14,"tag":71,"props":1740,"children":1742},{"className":1741},[],[1743],{"type":19,"value":1744},"S256",{"type":19,"value":1746}," est obligatoire, les jetons d'accès durent une heure et le jeton de rafraîchissement tourne à chaque usage.",{"type":14,"tag":1314,"props":1748,"children":1751},{"className":1749,"code":1750,"language":1319,"meta":7},[1317],"# Ce qu'un client fait tout seul — utile pour vérifier depuis un terminal.\ncurl -i -X POST https:\u002F\u002Fplatform.betool.ai\u002Fmcp \\\n  -H 'Content-Type: application\u002Fjson' \\\n  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\"}'\n# -> 401 + WWW-Authenticate: Bearer ... resource_metadata=\"...\"\n\ncurl -s https:\u002F\u002Fplatform.betool.ai\u002F.well-known\u002Foauth-authorization-server\n",[1752],{"type":14,"tag":71,"props":1753,"children":1754},{"__ignoreMap":7},[1755],{"type":19,"value":1750},{"type":14,"tag":15,"props":1757,"children":1758},{},[1759,1761,1766,1768,1773],{"type":19,"value":1760},"Un jeton n'est valable que ",{"type":14,"tag":22,"props":1762,"children":1763},{},[1764],{"type":19,"value":1765},"pour betool",{"type":19,"value":1767}," : réutilisé ailleurs, il est refusé (RFC 8707). Et si un jeton de rafraîchissement déjà consommé est présenté une seconde fois — la signature d'un jeton dérobé — ",{"type":14,"tag":22,"props":1769,"children":1770},{},[1771],{"type":19,"value":1772},"toute la session est révoquée",{"type":19,"value":1774}," et l'utilisateur doit autoriser à nouveau.",{"type":14,"tag":178,"props":1776,"children":1778},{"id":1777},"applications-connectées-voir-et-débrancher",[1779],{"type":19,"value":1780},"Applications connectées : voir et débrancher",{"type":14,"tag":15,"props":1782,"children":1783},{},[1784,1786,1790,1792,1797,1799,1804],{"type":19,"value":1785},"Dans ",{"type":14,"tag":22,"props":1787,"children":1788},{},[1789],{"type":19,"value":1198},{"type":19,"value":1791},", la section ",{"type":14,"tag":22,"props":1793,"children":1794},{},[1795],{"type":19,"value":1796},"Applications connectées",{"type":19,"value":1798}," liste ce qui est branché sur votre organisation : le nom de l'application, le périmètre accordé, qui l'a autorisée et la date du dernier usage. Un bouton ",{"type":14,"tag":22,"props":1800,"children":1801},{},[1802],{"type":19,"value":1803},"Débrancher",{"type":19,"value":1805}," coupe l'accès immédiatement — tous les jetons de cette application, pour votre organisation uniquement.",{"type":14,"tag":15,"props":1807,"children":1808},{},[1809],{"type":19,"value":1810},"Une même application peut être branchée par plusieurs organisations : la débrancher chez vous n'affecte personne d'autre. Une application peut aussi se débrancher elle-même.",{"type":14,"tag":178,"props":1812,"children":1814},{"id":1813},"périmètre-isolation",[1815],{"type":19,"value":1816},"Périmètre & isolation",{"type":14,"tag":80,"props":1818,"children":1819},{},[1820,1832],{"type":14,"tag":84,"props":1821,"children":1822},{},[1823,1825,1830],{"type":19,"value":1824},"Par défaut, une clé n'opère que sur ",{"type":14,"tag":22,"props":1826,"children":1827},{},[1828],{"type":19,"value":1829},"votre propre organisation",{"type":19,"value":1831}," — l'org cible est forcée côté serveur ; vous ne passez jamais d'identifiant d'organisation en argument.",{"type":14,"tag":84,"props":1833,"children":1834},{},[1835,1836,1841],{"type":19,"value":296},{"type":14,"tag":22,"props":1837,"children":1838},{},[1839],{"type":19,"value":1840},"clés vendor",{"type":19,"value":1842}," (organisation backoffice) peuvent cibler une autre organisation, sous le consentement explicite de celle-ci et avec traçabilité — utile pour un usage d'éditeur multi-tenant.",{"type":14,"tag":178,"props":1844,"children":1846},{"id":1845},"journal-daudit",[1847],{"type":19,"value":1848},"Journal d'audit",{"type":14,"tag":15,"props":1850,"children":1851},{},[1852,1854,1859,1861,1865,1867,1872],{"type":19,"value":1853},"Chaque appel d'outil (externe via MCP ",{"type":14,"tag":22,"props":1855,"children":1856},{},[1857],{"type":19,"value":1858},"et",{"type":19,"value":1860}," interne) écrit une ligne d'audit : qui, quel outil, quel canal, quel périmètre, quel résultat, quelle latence. Consultable dans ",{"type":14,"tag":22,"props":1862,"children":1863},{},[1864],{"type":19,"value":1198},{"type":19,"value":1866}," (section ",{"type":14,"tag":22,"props":1868,"children":1869},{},[1870],{"type":19,"value":1871},"Journal des appels d'outils",{"type":19,"value":1873},"), scopé strictement à votre organisation.",{"type":14,"tag":178,"props":1875,"children":1877},{"id":1876},"voir-aussi",[1878],{"type":19,"value":1879},"Voir aussi",{"type":14,"tag":80,"props":1881,"children":1882},{},[1883,1894],{"type":14,"tag":84,"props":1884,"children":1885},{},[1886,1892],{"type":14,"tag":247,"props":1887,"children":1889},{"href":1888},"\u002Fdocs\u002Fdeveloppeurs\u002Fapi-admin",[1890],{"type":19,"value":1891},"API Admin",{"type":19,"value":1893}," — automatiser betool depuis vos propres systèmes.",{"type":14,"tag":84,"props":1895,"children":1896},{},[1897,1903],{"type":14,"tag":247,"props":1898,"children":1900},{"href":1899},"\u002Fdocs\u002Fsecurite\u002Fprincipes",[1901],{"type":19,"value":1902},"Sécurité & conformité",{"type":19,"value":1904}," — le modèle de gouvernance des propositions.",{"title":7,"searchDepth":1906,"depth":1906,"links":1907},2,[1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918],{"id":180,"depth":1906,"text":183},{"id":321,"depth":1906,"text":324},{"id":840,"depth":1906,"text":252},{"id":1169,"depth":1906,"text":1172},{"id":1297,"depth":1906,"text":1300},{"id":1375,"depth":1906,"text":279},{"id":1606,"depth":1906,"text":1609},{"id":1777,"depth":1906,"text":1780},{"id":1813,"depth":1906,"text":1816},{"id":1845,"depth":1906,"text":1848},{"id":1876,"depth":1906,"text":1879},"markdown","content:docs:6.developpeurs:3.mcp.md","content","docs\u002F6.developpeurs\u002F3.mcp.md","docs\u002F6.developpeurs\u002F3.mcp","md",[1926],{"title":1927,"_path":1928,"children":1929},"Docs","\u002Fdocs",[1930,1943,1971,1998,2011,2026,2036,2097],{"title":1931,"_path":1932,"children":1933},"Démarrer","\u002Fdocs\u002Fdemarrer",[1934,1937,1940],{"title":1935,"_path":1936},"Bienvenue","\u002Fdocs\u002Fdemarrer\u002Fbienvenue",{"title":1938,"_path":1939},"Créer un compte","\u002Fdocs\u002Fdemarrer\u002Fcreer-un-compte",{"title":1941,"_path":1942},"Brancher une clé LLM","\u002Fdocs\u002Fdemarrer\u002Fbrancher-llm",{"title":1944,"_path":1945,"children":1946},"Canaux","\u002Fdocs\u002Fcanaux",[1947,1950,1953,1956,1959,1962,1965,1968],{"title":1948,"_path":1949},"Vue d'ensemble des canaux","\u002Fdocs\u002Fcanaux\u002Fvue-densemble",{"title":1951,"_path":1952},"Téléphonie temps réel","\u002Fdocs\u002Fcanaux\u002Ftelephone",{"title":1954,"_path":1955},"Email","\u002Fdocs\u002Fcanaux\u002Femail",{"title":1957,"_path":1958},"Chat widget web","\u002Fdocs\u002Fcanaux\u002Fchat-widget",{"title":1960,"_path":1961},"Webhook HTTP","\u002Fdocs\u002Fcanaux\u002Fwebhook",{"title":1963,"_path":1964},"Messageries (WhatsApp, Messenger, Telegram, Mattermost)","\u002Fdocs\u002Fcanaux\u002Fmessageries",{"title":1966,"_path":1967},"Meta Lead Ads","\u002Fdocs\u002Fcanaux\u002Ffacebook-leads",{"title":1969,"_path":1970},"Planification (cron)","\u002Fdocs\u002Fcanaux\u002Fschedule",{"title":1972,"_path":1973,"children":1974},"Pipelines","\u002Fdocs\u002Fpipelines",[1975,1978,1981,1984,1987,1990,1993,1996],{"title":1976,"_path":1977},"L'éditeur visuel","\u002Fdocs\u002Fpipelines\u002Fediteur-visuel",{"title":1979,"_path":1980},"Agents IA","\u002Fdocs\u002Fpipelines\u002Fagents",{"title":1982,"_path":1983},"Opérateurs déterministes","\u002Fdocs\u002Fpipelines\u002Foperateurs",{"title":1985,"_path":1986},"Contrôle de flux","\u002Fdocs\u002Fpipelines\u002Fcontrole-flux",{"title":1988,"_path":1989},"Étapes de code","\u002Fdocs\u002Fpipelines\u002Fcode-step",{"title":1991,"_path":1992},"Sous-pipelines","\u002Fdocs\u002Fpipelines\u002Fsous-pipelines",{"title":1994,"_path":1995},"Actions sans code","\u002Fdocs\u002Fpipelines\u002Factions-no-code",{"title":1997,"_path":649},"Base de connaissances",{"title":1999,"_path":2000,"children":2001},"Supervision","\u002Fdocs\u002Fsupervision",[2002,2005,2008],{"title":2003,"_path":2004},"Historique d'exécutions","\u002Fdocs\u002Fsupervision\u002Fexecutions",{"title":2006,"_path":2007},"Crédits & metering","\u002Fdocs\u002Fsupervision\u002Fcredits-metering",{"title":2009,"_path":2010},"Benchmarks","\u002Fdocs\u002Fsupervision\u002Fbenchmarks",{"title":2012,"_path":2013,"children":2014},"Sécurité","\u002Fdocs\u002Fsecurite",[2015,2017,2020,2023],{"title":2016,"_path":1899},"Principes de sécurité",{"title":2018,"_path":2019},"Multi-tenant strict","\u002Fdocs\u002Fsecurite\u002Fmulti-tenant",{"title":2021,"_path":2022},"Audit RGPD & journal d'accès","\u002Fdocs\u002Fsecurite\u002Faudit-rgpd",{"title":2024,"_path":2025},"Déploiement souverain","\u002Fdocs\u002Fsecurite\u002Fdeploiement-souverain",{"title":2027,"_path":2028,"children":2029},"Développeurs","\u002Fdocs\u002Fdeveloppeurs",[2030,2032,2035],{"title":2031,"_path":1888},"API admin",{"title":2033,"_path":2034},"Webhooks sortants","\u002Fdocs\u002Fdeveloppeurs\u002Fwebhooks-sortants",{"title":8,"_path":4},{"title":2037,"_path":2038,"children":2039},"Intégrations","\u002Fdocs\u002Fintegrations",[2040,2043,2046,2049,2052,2055,2058,2061,2064,2067,2070,2073,2076,2079,2082,2085,2088,2091,2094],{"title":2041,"_path":2042},"Vue d'ensemble des intégrations","\u002Fdocs\u002Fintegrations\u002Fvue-densemble",{"title":2044,"_path":2045},"Stripe","\u002Fdocs\u002Fintegrations\u002Fstripe",{"title":2047,"_path":2048},"GitHub","\u002Fdocs\u002Fintegrations\u002Fgithub",{"title":2050,"_path":2051},"Google","\u002Fdocs\u002Fintegrations\u002Fgoogle",{"title":2053,"_path":2054},"LinkedIn Ads","\u002Fdocs\u002Fintegrations\u002Flinkedin-ads",{"title":2056,"_path":2057},"Kavkom","\u002Fdocs\u002Fintegrations\u002Fkavkom",{"title":2059,"_path":2060},"Jira","\u002Fdocs\u002Fintegrations\u002Fjira",{"title":2062,"_path":2063},"Slack","\u002Fdocs\u002Fintegrations\u002Fslack",{"title":2065,"_path":2066},"SMS","\u002Fdocs\u002Fintegrations\u002Fsms",{"title":2068,"_path":2069},"Enable Banking (open banking)","\u002Fdocs\u002Fintegrations\u002Fenable-banking",{"title":2071,"_path":2072},"CRM, marketing & productivité","\u002Fdocs\u002Fintegrations\u002Fcrm-marketing",{"title":2074,"_path":2075},"HeyGen (vidéo)","\u002Fdocs\u002Fintegrations\u002Fheygen",{"title":2077,"_path":2078},"La Poste","\u002Fdocs\u002Fintegrations\u002Fla-poste",{"title":2080,"_path":2081},"CRM métier (beTool Application, Qhare)","\u002Fdocs\u002Fintegrations\u002Fcrm-metier",{"title":2083,"_path":2084},"Mitti (inspections terrain)","\u002Fdocs\u002Fintegrations\u002Fmitti",{"title":2086,"_path":2087},"Meta (Messenger, Pages, Meta Ads)","\u002Fdocs\u002Fintegrations\u002Fmeta",{"title":2089,"_path":2090},"Onoff Business (Beta)","\u002Fdocs\u002Fintegrations\u002Fonoff",{"title":2092,"_path":2093},"Smart Life \u002F Tuya (objets connectés)","\u002Fdocs\u002Fintegrations\u002Fsmart-life",{"title":2095,"_path":2096},"Produits beTool (Desktop, Kiosk, Terminal)","\u002Fdocs\u002Fintegrations\u002Fproduits-betool",{"title":2098,"_path":2099,"children":2100},"Cas d'usage","\u002Fdocs\u002Fcas-usage",[2101,2104,2107,2110,2113,2116],{"title":2102,"_path":2103},"Agents métier types","\u002Fdocs\u002Fcas-usage\u002Fvue-densemble",{"title":2105,"_path":2106},"CFO IA","\u002Fdocs\u002Fcas-usage\u002Fcfo-ia",{"title":2108,"_path":2109},"COO IA","\u002Fdocs\u002Fcas-usage\u002Fcoo-ia",{"title":2111,"_path":2112},"CTO IA","\u002Fdocs\u002Fcas-usage\u002Fcto-ia",{"title":2114,"_path":2115},"Product Manager IA","\u002Fdocs\u002Fcas-usage\u002Fproduct-manager-ia",{"title":2117,"_path":2118},"Assistant personnel","\u002Fdocs\u002Fcas-usage\u002Fassistant-personnel"]