[{"data":1,"prerenderedAt":844},["ShallowReactive",2],{"\u002Fnext\u002Fadministrer\u002Fdokos-cli\u002Fintegration-agents":3,"section:\u002Fnext\u002Fadministrer\u002Fdokos-cli\u002Fintegration-agents":843},{"id":4,"title":5,"body":6,"description":828,"extension":829,"meta":830,"navigation":831,"path":839,"seo":840,"stem":841,"__hash__":842},"docs\u002F2.next\u002F5.administrer\u002F04.dokos-cli\u002F4.integration-agents.md","Intégration avec les agents (MCP)",{"type":7,"value":8,"toc":821},"minimark",[9,30,35,61,122,129,162,183,195,211,215,222,249,351,358,362,369,382,391,495,501,637,655,659,668,692,754,760,770,774,817],[10,11,12,16,17,21,22,25,26,29],"p",{},[13,14,15],"code",{},"dokos"," expose ses capacités aux agents IA de deux façons : un ",[18,19,20],"strong",{},"serveur MCP"," (Model Context Protocol) et une ",[18,23,24],{},"compétence"," (skill) prête pour le prompt. Une seule commande, ",[13,27,28],{},"dokos agent install",", câble le tout dans vos runtimes.",[31,32,34],"h2",{"id":33},"installation-clé-en-main","Installation clé en main",[10,36,37,39,40,45,46,49,50,56,57,60],{},[13,38,28],{}," fait trois choses pour chaque runtime détecté : il ",[18,41,42,43],{},"enregistre le serveur MCP ",[13,44,15],{},", ",[18,47,48],{},"auto-approuve les outils en lecture seule",", et ",[18,51,52,53],{},"installe la compétence ",[13,54,55],{},"dokos-erp"," dans la bibliothèque centrale ",[13,58,59],{},"~\u002F.agents\u002Fskills"," (partagée par tous les runtimes).",[62,63,68],"pre",{"className":64,"code":65,"language":66,"meta":67,"style":67},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dokos agent install --print                 # prévisualiser, sans rien écrire\ndokos agent install                         # installer dans tous les runtimes détectés\ndokos agent install --runtime claude,vibe   # un sous-ensemble : claude,vibe,opencode,agy\n","bash","",[13,69,70,92,104],{"__ignoreMap":67},[71,72,75,78,82,85,88],"span",{"class":73,"line":74},"line",1,[71,76,15],{"class":77},"sBMFI",[71,79,81],{"class":80},"sfazB"," agent",[71,83,84],{"class":80}," install",[71,86,87],{"class":80}," --print",[71,89,91],{"class":90},"sHwdD","                 # prévisualiser, sans rien écrire\n",[71,93,95,97,99,101],{"class":73,"line":94},2,[71,96,15],{"class":77},[71,98,81],{"class":80},[71,100,84],{"class":80},[71,102,103],{"class":90},"                         # installer dans tous les runtimes détectés\n",[71,105,107,109,111,113,116,119],{"class":73,"line":106},3,[71,108,15],{"class":77},[71,110,81],{"class":80},[71,112,84],{"class":80},[71,114,115],{"class":80}," --runtime",[71,117,118],{"class":80}," claude,vibe",[71,120,121],{"class":90},"   # un sous-ensemble : claude,vibe,opencode,agy\n",[10,123,124,125,128],{},"L'opération est ",[18,126,127],{},"idempotente"," : relancer ne change rien. Les lectures s'exécutent sans confirmation. Les écritures restent soumises à validation.",[130,131,134],"callout",{"color":132,"icon":133},"blue","i-mdi-information",[10,135,136,137,140,141,143,144,146,147,150,151,154,155,157,158,161],{},"Claude Cowork et Claude Desktop ne lisent pas ",[13,138,139],{},"~\u002F.claude"," : ",[13,142,28],{}," ne les atteint pas. Installez à la place le plugin ",[13,145,15],{}," depuis la place de marché ",[13,148,149],{},"https:\u002F\u002Fgitlab.com\u002Fdokos\u002Fdokos-cli"," (",[18,152,153],{},"Customize → Plugins → Add marketplace","). Le plugin demande le chemin complet de l'exécutable ",[13,156,15],{}," (résultat de ",[13,159,160],{},"which dokos","). La session doit tourner en exécution locale.",[130,163,165],{"color":132,"icon":164},"i-mdi-cloud-outline",[10,166,167,168,171,172,177,178,182],{},"Un agent dans le cloud (claude.ai, application mobile) ne peut pas lancer le serveur local. Si le site a l'application Dokos AI avec son serveur MCP activé, utilisez le serveur MCP distant du site ou le plugin ",[13,169,170],{},"dokos-connect"," : voir ",[173,174,176],"a",{"href":175},"\u002Fnext\u002Fintegrations\u002Fia\u002Fserveurs-mcp","Serveurs MCP"," et ",[173,179,181],{"href":180},"\u002Fnext\u002Fintegrations\u002Fia\u002Fdokos-connect","Dokos Connect",".",[184,185,186,187],"mermaid",{},"\nflowchart TD\n    I(dokos agent install)\n    I --> C(Claude Code)\n    I --> G(agy)\n    I --> V(Vibe CLI)\n    I --> O(OpenCode)\n    I --> L[Bibliothèque de compétences\\n~\u002F.agents\u002Fskills\\ncompétence dokos-erp]\n",[62,188,193],{"className":189,"code":191,"language":192},[190],"language-text","C -->|claude mcp add-json\\n~\u002F.claude\u002Fsettings.json| MCP(serveur MCP\\ndokos mcp)\nG -->|agy plugin import claude| MCP\nV -->|~\u002F.vibe\u002Fconfig.toml| MCP\nO -->|~\u002F.config\u002Fopencode\u002Fopencode.json| MCP\n\nL -.->|lien symbolique| C\nL -.->|lien symbolique| G\nL -.->|lien symbolique| V\nL -.->|lien symbolique| O\n","text",[13,194,191],{"__ignoreMap":67},[130,196,197],{"color":132,"icon":133},[10,198,199,200,203,204,206,207,210],{},"La compétence est installée ",[18,201,202],{},"une seule fois"," dans ",[13,205,59],{},", puis partagée à chaque runtime par lien symbolique. Seuls l'enregistrement MCP et la liste d'auto-approbation diffèrent d'un runtime à l'autre. ",[13,208,209],{},"agy"," importe sa configuration depuis Claude : appliquez donc la cible Claude en premier.",[31,212,214],{"id":213},"enregistrement-manuel-du-serveur-mcp","Enregistrement manuel du serveur MCP",[10,216,217,218,221],{},"Si vous n'utilisez pas l'installateur, enregistrez le serveur à la main. Il s'exécute en ",[18,219,220],{},"stdio"," : l'agent le lance comme sous-processus.",[62,223,225],{"className":64,"code":224,"language":66,"meta":67,"style":67},"dokos mcp --print-config     # affiche l'extrait d'enregistrement, puis quitte\ndokos mcp                    # lance le serveur MCP en stdio\n",[13,226,227,240],{"__ignoreMap":67},[71,228,229,231,234,237],{"class":73,"line":74},[71,230,15],{"class":77},[71,232,233],{"class":80}," mcp",[71,235,236],{"class":80}," --print-config",[71,238,239],{"class":90},"     # affiche l'extrait d'enregistrement, puis quitte\n",[71,241,242,244,246],{"class":73,"line":94},[71,243,15],{"class":77},[71,245,233],{"class":80},[71,247,248],{"class":90},"                    # lance le serveur MCP en stdio\n",[62,250,254],{"className":251,"code":252,"language":253,"meta":67,"style":67},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"mcpServers\": {\n    \"dokos\": { \"command\": \"dokos\", \"args\": [\"mcp\"] }\n  }\n}\n","json",[13,255,256,262,280,339,345],{"__ignoreMap":67},[71,257,258],{"class":73,"line":74},[71,259,261],{"class":260},"sMK4o","{\n",[71,263,264,267,271,274,277],{"class":73,"line":94},[71,265,266],{"class":260},"  \"",[71,268,270],{"class":269},"spNyl","mcpServers",[71,272,273],{"class":260},"\"",[71,275,276],{"class":260},":",[71,278,279],{"class":260}," {\n",[71,281,282,285,287,289,291,294,297,301,303,305,307,309,311,314,316,319,321,323,326,328,331,333,336],{"class":73,"line":106},[71,283,284],{"class":260},"    \"",[71,286,15],{"class":77},[71,288,273],{"class":260},[71,290,276],{"class":260},[71,292,293],{"class":260}," {",[71,295,296],{"class":260}," \"",[71,298,300],{"class":299},"sbssI","command",[71,302,273],{"class":260},[71,304,276],{"class":260},[71,306,296],{"class":260},[71,308,15],{"class":80},[71,310,273],{"class":260},[71,312,313],{"class":260},",",[71,315,296],{"class":260},[71,317,318],{"class":299},"args",[71,320,273],{"class":260},[71,322,276],{"class":260},[71,324,325],{"class":260}," [",[71,327,273],{"class":260},[71,329,330],{"class":80},"mcp",[71,332,273],{"class":260},[71,334,335],{"class":260},"]",[71,337,338],{"class":260}," }\n",[71,340,342],{"class":73,"line":341},4,[71,343,344],{"class":260},"  }\n",[71,346,348],{"class":73,"line":347},5,[71,349,350],{"class":260},"}\n",[10,352,353,354,357],{},"Pour Claude Code, cet extrait va dans ",[13,355,356],{},".mcp.json",". OpenCode et Vibe utilisent leur propre configuration MCP.",[31,359,361],{"id":360},"outils-exposés","Outils exposés",[10,363,364,365,368],{},"Chaque outil est une fine enveloppe autour des mêmes fonctions que les commandes du terminal. Les résultats sont des dictionnaires compacts pour limiter l'empreinte en jetons. Les erreurs sont renvoyées sous la forme ",[13,366,367],{},"{\"error\": \"...\"}",", avec le message du serveur et une piste de correction.",[10,370,371,372,375,376,140,379,381],{},"Chaque outil de données accepte un argument facultatif ",[13,373,374],{},"site",", qui désigne le site visé. Préférez-le à ",[13,377,378],{},"site_use",[13,380,378],{}," change le site actif pour toute la machine, et deux agents peuvent alors se gêner.",[10,383,384,387,388,390],{},[18,385,386],{},"Lectures"," (approuvées automatiquement par ",[13,389,28],{},") :",[392,393,394,407],"table",{},[395,396,397],"thead",{},[398,399,400,404],"tr",{},[401,402,403],"th",{},"Outil",[401,405,406],{},"Rôle",[408,409,410,421,431,441,451,461,471,481],"tbody",{},[398,411,412,418],{},[413,414,415],"td",{},[13,416,417],{},"meta_get(doctype)",[413,419,420],{},"Schéma compact d'un DocType",[398,422,423,428],{},[413,424,425],{},[13,426,427],{},"perms_get(doctype)",[413,429,430],{},"Règles de permissions d'un DocType",[398,432,433,438],{},[413,434,435],{},[13,436,437],{},"doc_get(doctype, name)",[413,439,440],{},"Lire un document complet",[398,442,443,448],{},[413,444,445],{},[13,446,447],{},"doc_list(doctype, filters?, fields?, limit=20, order_by?)",[413,449,450],{},"Lister des documents",[398,452,453,458],{},[413,454,455],{},[13,456,457],{},"doc_count(doctype, filters?)",[413,459,460],{},"Compter des documents",[398,462,463,468],{},[413,464,465],{},[13,466,467],{},"doc_value(doctype, fieldname, filters?)",[413,469,470],{},"Lire un ou plusieurs champs",[398,472,473,478],{},[413,474,475],{},[13,476,477],{},"run_report(report_name, filters?)",[413,479,480],{},"Exécuter un rapport",[398,482,483,492],{},[413,484,485,488,489],{},[13,486,487],{},"site_list()"," \u002F ",[13,490,491],{},"site_current()",[413,493,494],{},"Lister les sites configurés \u002F afficher le site actif",[10,496,497,500],{},[18,498,499],{},"Écritures"," (soumises à confirmation) :",[392,502,503,511],{},[395,504,505],{},[398,506,507,509],{},[401,508,403],{},[401,510,406],{},[408,512,513,523,533,546,556,569,579,589,599,614,627],{},[398,514,515,520],{},[413,516,517],{},[13,518,519],{},"doc_create(doc)",[413,521,522],{},"Créer un document",[398,524,525,530],{},[413,526,527],{},[13,528,529],{},"doc_update(doctype, name, fields, force?)",[413,531,532],{},"Mettre à jour un document. Refusé si le document a changé depuis sa lecture",[398,534,535,543],{},[413,536,537,488,540],{},[13,538,539],{},"doc_submit(doctype, name)",[13,541,542],{},"doc_cancel(doctype, name)",[413,544,545],{},"Valider \u002F annuler un document",[398,547,548,553],{},[413,549,550],{},[13,551,552],{},"doc_amend(doctype, name)",[413,554,555],{},"Créer un brouillon à partir d'un document annulé",[398,557,558,563],{},[413,559,560],{},[13,561,562],{},"doc_delete(doctype, name)",[413,564,565,566],{},"Supprimer un document. ",[18,567,568],{},"Irréversible",[398,570,571,576],{},[413,572,573],{},[13,574,575],{},"doc_rename(doctype, old_name, new_name, merge?)",[413,577,578],{},"Renommer ou fusionner un document",[398,580,581,586],{},[413,582,583],{},[13,584,585],{},"upload_file(path, doctype?, docname?, fieldname?, is_private?)",[413,587,588],{},"Envoyer un fichier, et le joindre si besoin",[398,590,591,596],{},[413,592,593],{},[13,594,595],{},"method_call(method, args?, http_method?)",[413,597,598],{},"Appeler une méthode serveur autorisée",[398,600,601,606],{},[413,602,603],{},[13,604,605],{},"report_create(report_name, query, ref_doctype)",[413,607,608,609,613],{},"Créer un ",[610,611,612],"em",{},"Query Report"," depuis du SQL",[398,615,616,621],{},[413,617,618],{},[13,619,620],{},"site_add(name, url, api_key, api_secret, make_active=True)",[413,622,623,624],{},"Enregistrer un site. ",[18,625,626],{},"Écrit des identifiants",[398,628,629,634],{},[413,630,631],{},[13,632,633],{},"site_use(name)",[413,635,636],{},"Changer de site actif, pour toute la machine",[130,638,641],{"color":639,"icon":640},"green","i-mdi-shield-check-outline",[10,642,643,645,646,649,650,654],{},[13,644,28],{}," n'approuve automatiquement que les outils de ",[18,647,648],{},"lecture",". Les outils d'écriture restent soumis à confirmation dans les réglages de permissions de l'agent. Sur un site en ",[173,651,653],{"href":652},"\u002Fnext\u002Fadministrer\u002Fdokos-cli\u002Fconfiguration","lecture seule",", ils sont refusés avant l'envoi de la requête.",[31,656,658],{"id":657},"compétences","Compétences",[10,660,661,662,664,665,667],{},"Une ",[18,663,24],{}," (skill) est une fiche Markdown qui explique à un agent comment faire une tâche sur un site Dokos. Deux sources alimentent la bibliothèque partagée ",[13,666,59],{}," :",[669,670,671,683],"ul",{},[672,673,674,140,677,679,680,682],"li",{},[18,675,676],{},"Livrées avec la CLI",[13,678,55],{},", installée par ",[13,681,28],{},", et une fiche par commande.",[672,684,685,140,688,691],{},[18,686,687],{},"Publiées par le site",[13,689,690],{},"dokos skill pull"," installe les compétences que le site connecté publie. Le site doit avoir l'application Dokos AI.",[62,693,695],{"className":64,"code":694,"language":66,"meta":67,"style":67},"dokos skill pull                        # synchroniser depuis le site actif\ndokos skill pull --site staging --prune # retirer aussi les compétences supprimées sur ce site\ndokos skill list                        # toutes les compétences de la bibliothèque et leur origine\ndokos skill show                        # afficher le SKILL.md livré avec la CLI\n",[13,696,697,710,730,742],{"__ignoreMap":67},[71,698,699,701,704,707],{"class":73,"line":74},[71,700,15],{"class":77},[71,702,703],{"class":80}," skill",[71,705,706],{"class":80}," pull",[71,708,709],{"class":90},"                        # synchroniser depuis le site actif\n",[71,711,712,714,716,718,721,724,727],{"class":73,"line":94},[71,713,15],{"class":77},[71,715,703],{"class":80},[71,717,706],{"class":80},[71,719,720],{"class":80}," --site",[71,722,723],{"class":80}," staging",[71,725,726],{"class":80}," --prune",[71,728,729],{"class":90}," # retirer aussi les compétences supprimées sur ce site\n",[71,731,732,734,736,739],{"class":73,"line":106},[71,733,15],{"class":77},[71,735,703],{"class":80},[71,737,738],{"class":80}," list",[71,740,741],{"class":90},"                        # toutes les compétences de la bibliothèque et leur origine\n",[71,743,744,746,748,751],{"class":73,"line":341},[71,745,15],{"class":77},[71,747,703],{"class":80},[71,749,750],{"class":80}," show",[71,752,753],{"class":90},"                        # afficher le SKILL.md livré avec la CLI\n",[10,755,756,759],{},[13,757,758],{},"--prune"," ne retire que les compétences récupérées depuis ce site. Une compétence écrite localement avec le même nom n'est jamais supprimée.",[10,761,762,765,766,769],{},[13,763,764],{},"dokos mcp"," met à jour la bibliothèque en arrière-plan, au plus une fois par jour. Un site sans Dokos AI est ignoré sans erreur. ",[13,767,768],{},"DOKOS_SKIP_SKILL_PULL=1"," désactive cette mise à jour.",[31,771,773],{"id":772},"conseils-pour-les-agents","Conseils pour les agents",[669,775,776,790,804],{},[672,777,778,779,782,783,785,786,789],{},"Utilisez ",[13,780,781],{},"--json"," (terminal) ou les outils MCP pour enchaîner les appels. La sortie ",[13,784,781],{}," contient un tableau ",[13,787,788],{},"next"," de commandes de suivi suggérées.",[672,791,792,793,796,797,177,800,803],{},"Lancez ",[13,794,795],{},"dokos sync"," une fois pour que l'agent puisse lire ",[13,798,799],{},"~\u002F.config\u002Fdokos\u002Fdoctypes.md",[13,801,802],{},"reports.md"," et découvrir les noms exacts (sensibles à la casse).",[672,805,806,807,810,811,488,814,182],{},"Préférez un ",[13,808,809],{},"meta get"," avant d'écrire, pour connaître les champs obligatoires et les options des champs ",[610,812,813],{},"Link",[610,815,816],{},"Select",[818,819,820],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":67,"searchDepth":74,"depth":94,"links":822},[823,824,825,826,827],{"id":33,"depth":94,"text":34},{"id":213,"depth":94,"text":214},{"id":360,"depth":94,"text":361},{"id":657,"depth":94,"text":658},{"id":772,"depth":94,"text":773},"Brancher Dokos CLI sur Claude Code, agy, Vibe CLI et OpenCode avec le serveur MCP local, l'installation clé en main dokos agent install et les compétences partagées.","md",{"reviewed":831,"last_verified":832,"sources":833},true,"2026-11-03",[834,835,836,837,838],"dokos-cli:docs\u002Fmcp.md","dokos-cli:README.md","dokos-cli:dokos_cli\u002Fmcp_server.py","dokos-cli:dokos_cli\u002Fagent_targets.py","dokos-cli:dokos_cli\u002Fcommands\u002Fskill.py","\u002Fnext\u002Fadministrer\u002Fdokos-cli\u002Fintegration-agents",{"title":5,"description":828},"2.next\u002F5.administrer\u002F04.dokos-cli\u002F4.integration-agents","45bjjxlNGdQvVxlan3HKNzzRqBVFwBHBDgifjYP0Zqc",{},1793871713895]