Intégration avec les agents (MCP)
dokos expose ses capacités aux agents IA de deux façons : un serveur MCP (Model Context Protocol) et une compétence (skill) prête pour le prompt. Une seule commande, dokos agent install, câble le tout dans vos runtimes.
Installation clé en main
dokos agent install fait trois choses pour chaque runtime détecté : il enregistre le serveur MCP dokos, auto-approuve les outils en lecture seule, et installe la compétence dokos-erp dans la bibliothèque centrale ~/.agents/skills (partagée par tous les runtimes).
dokos agent install --print # prévisualiser, sans rien écrire
dokos agent install # installer dans tous les runtimes détectés
dokos agent install --runtime claude,vibe # un sous-ensemble : claude,vibe,opencode,agy
L'opération est idempotente : relancer ne change rien. Les lectures s'exécutent sans confirmation. Les écritures restent soumises à validation.
~/.claude : dokos agent install ne les atteint pas. Installez à la place le plugin dokos depuis la place de marché https://gitlab.com/dokos/dokos-cli (Customize → Plugins → Add marketplace). Le plugin demande le chemin complet de l'exécutable dokos (résultat de which dokos). La session doit tourner en exécution locale.dokos-connect : voir Serveurs MCP et Dokos Connect.~/.agents/skills, 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. agy importe sa configuration depuis Claude : appliquez donc la cible Claude en premier.Enregistrement manuel du serveur MCP
Si vous n'utilisez pas l'installateur, enregistrez le serveur à la main. Il s'exécute en stdio : l'agent le lance comme sous-processus.
dokos mcp --print-config # affiche l'extrait d'enregistrement, puis quitte
dokos mcp # lance le serveur MCP en stdio
{
"mcpServers": {
"dokos": { "command": "dokos", "args": ["mcp"] }
}
}
Pour Claude Code, cet extrait va dans .mcp.json. OpenCode et Vibe utilisent leur propre configuration MCP.
Outils exposés
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 {"error": "..."}, avec le message du serveur et une piste de correction.
Chaque outil de données accepte un argument facultatif site, qui désigne le site visé. Préférez-le à site_use : site_use change le site actif pour toute la machine, et deux agents peuvent alors se gêner.
Lectures (approuvées automatiquement par dokos agent install) :
| Outil | Rôle |
|---|---|
meta_get(doctype) | Schéma compact d'un DocType |
perms_get(doctype) | Règles de permissions d'un DocType |
doc_get(doctype, name) | Lire un document complet |
doc_list(doctype, filters?, fields?, limit=20, order_by?) | Lister des documents |
doc_count(doctype, filters?) | Compter des documents |
doc_value(doctype, fieldname, filters?) | Lire un ou plusieurs champs |
run_report(report_name, filters?) | Exécuter un rapport |
site_list() / site_current() | Lister les sites configurés / afficher le site actif |
Écritures (soumises à confirmation) :
| Outil | Rôle |
|---|---|
doc_create(doc) | Créer un document |
doc_update(doctype, name, fields, force?) | Mettre à jour un document. Refusé si le document a changé depuis sa lecture |
doc_submit(doctype, name) / doc_cancel(doctype, name) | Valider / annuler un document |
doc_amend(doctype, name) | Créer un brouillon à partir d'un document annulé |
doc_delete(doctype, name) | Supprimer un document. Irréversible |
doc_rename(doctype, old_name, new_name, merge?) | Renommer ou fusionner un document |
upload_file(path, doctype?, docname?, fieldname?, is_private?) | Envoyer un fichier, et le joindre si besoin |
method_call(method, args?, http_method?) | Appeler une méthode serveur autorisée |
report_create(report_name, query, ref_doctype) | Créer un Query Report depuis du SQL |
site_add(name, url, api_key, api_secret, make_active=True) | Enregistrer un site. Écrit des identifiants |
site_use(name) | Changer de site actif, pour toute la machine |
dokos agent install n'approuve automatiquement que les outils de lecture. Les outils d'écriture restent soumis à confirmation dans les réglages de permissions de l'agent. Sur un site en lecture seule, ils sont refusés avant l'envoi de la requête.Compétences
Une compétence (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 ~/.agents/skills :
- Livrées avec la CLI :
dokos-erp, installée pardokos agent install, et une fiche par commande. - Publiées par le site :
dokos skill pullinstalle les compétences que le site connecté publie. Le site doit avoir l'application Dokos AI.
dokos skill pull # synchroniser depuis le site actif
dokos skill pull --site staging --prune # retirer aussi les compétences supprimées sur ce site
dokos skill list # toutes les compétences de la bibliothèque et leur origine
dokos skill show # afficher le SKILL.md livré avec la CLI
--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.
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. DOKOS_SKIP_SKILL_PULL=1 désactive cette mise à jour.
Conseils pour les agents
- Utilisez
--json(terminal) ou les outils MCP pour enchaîner les appels. La sortie--jsoncontient un tableaunextde commandes de suivi suggérées. - Lancez
dokos syncune fois pour que l'agent puisse lire~/.config/dokos/doctypes.mdetreports.mdet découvrir les noms exacts (sensibles à la casse). - Préférez un
meta getavant d'écrire, pour connaître les champs obligatoires et les options des champs Link / Select.