Serveur MCP
Le serveur MCP de Docsbook est un serveur distant du protocole de contexte de modèle qui expose votre documentation et l’ensemble de sa surface d’administration à un agent IA. Connectez Claude Code ou tout client compatible avec MCP à un seul point de terminaison pour lire vos pages, valider des modifications, consulter les analyses et modifier les paramètres sans quitter l’éditeur.
Cette page décrit ce que le serveur fournit et sur quelles données s’appuie chaque appel. Tous les outils répertoriés ici peuvent être utilisés par n’importe quel client connecté ; le coût d’un appel facturé figure sur la page des tarifs de Docsbook ainsi que sur la ligne propre à chaque outil dans votre panneau d’administration.
Qu’est-ce que le serveur MCP Docsbook ?#
Le serveur MCP Docsbook expose 149 outils via le Model Context Protocol, un standard ouvert permettant de fournir des outils, des ressources et des invites aux agents IA via une interface RPC typée.
Un seul d’entre eux est un agent. docsbook_expert prend toute demande de documentation formulée avec vos propres mots — « améliorer la documentation », « documenter cette API », « pourquoi les lecteurs ne passent-ils pas à l’action » — et répond en un seul aller-retour en expliquant comment effectuer le travail : les étapes dans l’ordre, l’outil à appeler pour chacune, les éléments à transmettre d’une étape à la suivante, ce qui rendrait la réponse incorrecte et ce dont il faut se souvenir ensuite. Il n’exécute rien lui-même et ne nécessite aucune approbation ; vous effectuez les appels qu’il indique, avec votre propre jeton et au tarif des lectures. Appelez-le en premier, avant de vous tourner vers quoi que ce soit ci-dessous.
Chaque autre outil est un appel simple nommé individuellement — espace de travail et image de marque, contenu, gestionnaire de tickets, chat IA, traductions, analyses, historique des appels, mémoire du projet, opportunités, hypothèses, tableau de travail et webhooks — parmi lesquels se trouvent les deux outils qui connectent et configurent un dépôt ou un site web comme source de vérité, ainsi que collect_ai_citability, qui évalue si un moteur de réponse peut récupérer vos contenus et les citer. Aucun d’entre eux ne s’exécute sans surveillance : un agent permanent qui se déclenchait selon son propre calendrier ou lors des commits d’un dépôt, ainsi que les 135 outils plus spécialisés qui ne s’exécutaient qu’à l’intérieur de celui-ci, ont été retirés le 12/09/2026 pour la raison que docsbook_expert les a remplacés — leur valeur ne résidait jamais dans leur exécution, mais dans le fait de savoir quelles lectures effectuer, dans quel ordre, et ce qui rend la réponse incorrecte : c’est quelque chose qu’il faut communiquer, pas exécuter. Consultez la référence des outils MCP pour obtenir la liste complète.
Point de terminaison#
Le serveur MCP Docsbook est disponible à une seule URL pour chaque espace de travail et chaque client :
https://docsbook.io/api/mcp/serverL’authentification utilise un flux de code d’autorisation OAuth avec PKCE. Le client reçoit un unique jeton Bearer opaque, qu’il présente à chaque appel ; aucun jeton d’actualisation n’est délivré et le jeton n’expire pas de lui-même. Sa rotation consiste donc à le révoquer dans le panneau, puis à s’authentifier à nouveau. Il n’existe pas d’URL MCP propre à chaque projet à rechercher : le flux OAuth est associé au compte connecté, et le client sélectionne ensuite l’espace de travail. Consultez Sécurité du serveur MCP pour en savoir plus sur le flux, les portées et les lacunes.
Comment connecter mon client IA à Docsbook ?#
Dirigez votre client vers https://docsbook.io/api/mcp/server et terminez la procédure OAuth dans le navigateur. Le serveur MCP Docsbook est un serveur HTTP distant avec OAuth : tous les clients MCP modernes s’y connectent avec le même point de terminaison, sans processus local à exécuter. Les sous-sections ci-dessous indiquent la commande exacte ou le fichier de configuration pour chaque client.
Vous pouvez également parcourir le catalogue dans votre propre projet : ouvrez le panneau d’administration et sélectionnez MCP dans la barre latérale. La première fois que vous l’ouvrez, la section propose un panneau Activer contenant la commande d’installation pour votre client, afin que vous puissiez vous connecter avant de consulter le catalogue. En cliquant dessus, un court guide s’affiche directement au-dessus du tableau. Celui-ci contient la liste de tous les outils actuellement proposés par le serveur, lue en direct depuis le serveur plutôt que depuis une copie mise par écrit, avec pour chaque outil sa catégorie de facturation, son prix par appel, la durée habituelle d’un appel et la possibilité ou non pour les lecteurs de l’appeler sans jeton. Recherchez un outil, affinez la liste avec les Filtres — les catégories de facturation, chacune affichée avec son propre prix — ou triez-la selon n’importe quelle colonne. Le survol d’une ligne ouvre une carte contenant tout ce qu’il reste à savoir sur cet outil : son rôle, le coût d’un appel et sa durée habituelle, le nombre d’arguments qu’il accepte et le nombre d’arguments obligatoires, le nombre d’exemples fonctionnels qui l’utilisent et — dans votre propre projet — ce qu’il vous a coûté jusqu’à présent et la date de votre dernier appel, avec son identifiant appelable prêt à être copié. Cliquer sur une ligne ouvre la page dédiée à cet outil, qui possède sa propre adresse : l’URL contient l’outil, ce qui vous permet de l’actualiser, de l’ajouter à vos favoris ou de l’envoyer à un collègue, qui arrivera sur le même outil plutôt que sur un tableau de trois cents lignes. Tout ce qu’elle contient concerne cet outil unique. Ses arguments sont présentés dans un formulaire doté d’un bouton Exécuter qui effectue un véritable appel sur ce projet, et le bouton affiche le prix avant le déplacement des fonds. En dessous se trouve son historique des appels, généré par le même tableau Flux que celui consulté partout ailleurs, filtré sur cet outil : une ligne par appel, et le développement d’une ligne affiche l’appel complet — les données envoyées, la réponse reçue, l’auteur de la demande (votre propre client, un agent externe ou une livraison webhook), sa durée, son prix et le montant effectivement débité de votre solde. En dessous se trouve un exemple fonctionnel à copier dans votre propre client ; ce qui est exécuté depuis Docsbook est l’appel, effectué par vous ou votre agent — rien ici ne s’appelle lui-même.
Claude Code#
claude mcp add --transport http docsbook https://docsbook.io/api/mcp/serverLe premier appel ouvre un onglet de navigateur pour l’authentification OAuth. Après avoir donné votre consentement, les outils deviennent disponibles dans Claude Code.
Cursor#
Cursor n’a pas de commande mcp add, mais accepte un lien d’installation en un clic :
cursor://anysphere.cursor-deeplink/mcp/install?name=docsbook&config=eyJ1cmwiOiJodHRwczovL2RvY3Nib29rLmlvL2FwaS9tY3Avc2VydmVyIiwidHlwZSI6Imh0dHAifQ==Ou ajoutez le serveur à ~/.cursor/mcp.json (ou utilisez Paramètres → MCP & Intégrations → Nouveau serveur MCP) :
{
"mcpServers": {
"docsbook": {
"url": "https://docsbook.io/api/mcp/server"
}
}
}Rechargez Cursor — OAuth s’ouvre dans le navigateur lors de la première utilisation.
Codex CLI#
codex mcp add docsbook --url https://docsbook.io/api/mcp/serverOu modifiez directement la configuration — Codex stocke les serveurs MCP dans ~/.codex/config.toml :
[mcp_servers.docsbook]
url = "https://docsbook.io/api/mcp/server"Windsurf#
Modifiez ~/.codeium/windsurf/mcp_config.json et actualisez le panneau Cascade :
{
"mcpServers": {
"docsbook": {
"serverUrl": "https://docsbook.io/api/mcp/server"
}
}
}Cline#
Ouvrez Cline → Serveurs MCP → Configurer les serveurs MCP et collez :
{
"mcpServers": {
"docsbook": {
"url": "https://docsbook.io/api/mcp/server",
"transportType": "http"
}
}
}Gemini CLI#
gemini mcp add --transport http docsbook https://docsbook.io/api/mcp/serverLa portée par défaut est le projet actuel — ajoutez --scope user pour l’installer globalement. Vous pouvez aussi l’ajouter manuellement à ~/.gemini/settings.json (notez que la clé est httpUrl ; url à cet endroit signifie SSE) :
{
"mcpServers": {
"docsbook": {
"httpUrl": "https://docsbook.io/api/mcp/server"
}
}
}GitHub Copilot (VS Code)#
code --add-mcp '{"name":"docsbook","type":"http","url":"https://docsbook.io/api/mcp/server"}'Ou créez .vscode/mcp.json dans votre espace de travail, puis activez le serveur depuis le sélecteur MCP de Copilot Chat (notez que la clé est servers, et non mcpServers) :
{
"servers": {
"docsbook": {
"type": "http",
"url": "https://docsbook.io/api/mcp/server"
}
}
}ChatGPT#
ChatGPT prend en charge le MCP distant via les Connecteurs, dans les formules payantes de ChatGPT. Cette exigence vient d'OpenAI, et non de Docsbook.
- Ouvrez ChatGPT → Paramètres → Connecteurs → Avancé → Mode développeur.
- Cliquez sur Créer et collez l'URL :
https://docsbook.io/api/mcp/server. - Autorisez l'accès dans le navigateur lorsque vous y êtes invité.
À quoi servent les outils MCP de Docsbook ?#
Les outils MCP de Docsbook existent pour produire l’un des quatre résultats suivants : attirer davantage de lecteurs qualifiés, faire en sorte qu’un plus grand nombre d’entre eux repartent avec ce qu’ils étaient venus chercher, permettre à l’assistant d’accompagner davantage de lecteurs ayant une intention d’achat, et réduire le nombre de questions qui parviennent à une personne. Tout ce qui suit est regroupé selon celui de ces quatre objectifs auxquels il contribue.
Votre documentation n’est pas un centre de coûts. C’est un canal qui remplit trois missions : être trouvé (par Google et par les assistants IA auxquels vos acheteurs s’adressent désormais à la place de Google), convertir le lecteur (une visite qui se termine sans résultat représente un client perdu qui ne s’est jamais plaint), et prouver ce qui a fonctionné (afin que la prochaine modification soit une décision, et non une supposition).
Il n’existe que quatre façons pour un outil de documentation de générer des revenus, et chaque outil ci-dessous sert l’une d’entre elles :
| Levier | Mécanisme | Outils principaux |
|---|---|---|
| Acquisition | Davantage de lecteurs qualifiés arrivent, depuis les moteurs de recherche et les réponses d’IA | get_search_rankings, collect_ai_citability, write_docs |
| Conversion | Davantage de lecteurs qui arrivent repartent avec ce qu’ils étaient venus chercher | get_visit_outcomes, get_dead_end_pages, get_content_health, get_route_patterns |
| Ventes | L’assistant accompagne les lecteurs ayant une intention d’achat au lieu de se contenter de répondre | get_chat_intent, get_chat_conversations, set_chat_system_prompt, set_chat_hooks |
| Coûts évités | Les questions auxquelles répond la documentation sont autant de questions auxquelles une personne n’a pas à répondre | get_ai_unanswered, get_failed_searches, get_search_zero_click, get_insights |
Un outil qui ne contribue à aucun de ces objectifs fournit du contexte, et non une décision. Pageviews: 12,340 fournit du contexte. 31% of your readers left with nothing fournit une décision.
Être visible#
| Outil | Ce qu'il apporte |
|---|---|
| (aucun outil) | Les balises meta, le sitemap, OpenGraph, le TL;DR, le balisage de l'auteur et les données JSON-LD FAQ/HowTo/speakable sont générés automatiquement pour chaque projet. Il y avait update_seo, update_geo et update_aeo jusqu'au 14 septembre 2026 : ils définissaient des indicateurs désormais activés en permanence. Ils ont donc été supprimés plutôt que de continuer à signaler des changements qu'ils n'effectuent plus. |
collect_ai_citability |
Si ce balisage atteint réellement les pages en ligne et si un assistant peut les récupérer et les citer — une question à laquelle les trois outils supprimés ne pouvaient jamais répondre. |
get_search_rankings |
Les positions réelles dans Google Search Console, ainsi que l'ensemble « à améliorer » aux positions 5 à 20 — les pages que Google affiche déjà, mais qui ne remportent pas encore le clic. Transforme « nous devrions faire du SEO » en une page et une requête précises. Accuse un retard d'environ 2 jours sur Google. |
get_analytics (ventilation des robots IA) |
Indique si les robots d'exploration de ChatGPT, Perplexity et Claude vous lisent réellement. Une valeur nulle signifie que le travail de GEO ne porte pas ses fruits : aucune exploration, aucune citation, aucun référencement. |
Les acheteurs demandent de plus en plus souvent à un assistant avant de s'adresser à un fournisseur. Si l'assistant répond à partir de la documentation d'un concurrent, vous n'entrez jamais dans la sélection finale et la perte n'apparaît dans aucun tableau de bord.
Ne pas perdre le lecteur#
get_visit_outcomes est le chiffre clé de l’ensemble du produit : il classe chaque visite comme réussie / sans issue / rebond / partielle et indique le taux de visites sans issue et le taux de résolution en autonomie. Une visite sans issue correspond à un lecteur qui a effectué une recherche, interrogé l’IA ou ouvert plusieurs pages — et qui est quand même reparti sans rien. Tout ce qui suit répond à la question « …et où exactement ? »
| Outil | À quoi il sert |
|---|---|
get_dead_end_pages |
La file de réécriture, classée par priorité. Les lignes marquées terminal_success correspondent aux pages que les utilisateurs quittent parce qu’ils ont trouvé ce dont ils avaient besoin — l’outil protège vos meilleures pages contre toute « correction ». |
get_content_health |
Un score de 0 à 100 par page, combinant les sorties sans issue et les retours négatifs. Il remplace le recoupement manuel de quatre rapports sur un vaste ensemble documentaire. |
get_rage_signals |
Les pages revisitées au moins 3 fois au cours d’une même visite, les allers-retours A→B→A et les recherches répétées. Le taux de visites sans issue indique qu’une visite a échoué ; cet indicateur indique où. Une revisite signifie que la réponse devrait se trouver sur cette page, mais qu’elle n’y est pas — la correction consiste à restructurer, pas à ajouter du contenu. |
get_route_patterns |
Les séquences de 2 à 4 pages que les lecteurs parcourent réellement, et la fréquence à laquelle chacune se termine bien. Un parcours fréquent qui se termine mal est un défaut de navigation, pas un problème de qualité de page — réécrire ces pages ne le corrigera pas. |
get_reverse_funnel |
Remonte le fil à partir des visites réussies : quelles pages d’entrée mènent à une bonne conclusion. Aucune hypothèse n’est nécessaire ; l’outil fait donc émerger le parcours trouvé par les lecteurs, que vous n’aviez jamais conçu. |
get_forward_funnel |
L’achèvement du parcours que vous avez défini, et la transition qui laisse perdre des utilisateurs. Votre taux d’achèvement de l’intégration. |
get_metric_timeseries |
N’importe quelle métrique clé, jour par jour — le seul outil qui répond à la question « est-ce que cela empire » et qui met une évolution en regard d’une date de mise en production. |
get_visits |
Les éléments probants derrière les taux : une visite reconstituée à la fois. À utiliser lorsqu’un chiffre est contesté, ou pour associer un lecteur réel à une réclamation. |
get_retention |
Taux de retour W1/W4 par cohorte. Le sens dépend de la section : un taux de retour élevé est positif pour la documentation de référence et un échec pour l’intégration. |
Demande à laquelle vous ne répondez pas#
Chaque ligne correspond à un ticket d’assistance que vous pouvez anticiper en rédigeant une page.
| Outil | Quelle est son utilité |
|---|---|
get_ai_unanswered |
Les questions auxquelles l’assistant n’a pas pu répondre, avec les propres mots du lecteur. Le plan de contenu le moins coûteux qui soit. |
get_failed_searches |
Les recherches ne renvoyant aucun résultat — la même lacune, par une autre voie. |
get_search_zero_click |
Les recherches ayant renvoyé des résultats mais n’ayant généré aucun clic. La lacune que les rapports de résultats nuls ne révèlent pas : la recherche a fonctionné et le lecteur a rejeté tous les résultats, ce qui pointe vers les titres et les résumés — d’un ordre de grandeur moins coûteux à corriger que le contenu des pages. |
get_popular_searches |
Ce que les internautes recherchent le plus. À lire en regard de get_content_health sur la même page : forte demande + faible qualité = votre page défaillante la plus coûteuse. |
get_negative_feedback |
Les pages ayant reçu des pouces vers le bas, classées par ordre. Le vote explicite du lecteur, sans aucune déduction nécessaire. |
get_insights |
La synthèse précombinée — lacunes documentaires, recherches sans résultat et pages mal évaluées, avec des estimations d’impact, en un seul appel. Commencez ici pour savoir « que dois-je corriger cette semaine ? » |
Vendre via l’assistant#
Le chat n’est pas un widget d’assistance. C’est le seul endroit où un prospect énonce son objection en langage clair.
| Outil | Ce qu’il permet de comprendre |
|---|---|
get_chat_intent |
Conversations réparties par étape d’achat — évaluation, tarification, intégration, assistance, bug. Indique qui décide d’acheter et ce qui bloque l’achat. Identifie le concurrent lorsque les lecteurs en mentionnent un : une veille concurrentielle qu’aucun rapport au niveau de la page ne peut produire. |
get_chat_conversations |
Questions regroupées par sujet, avec click_through — la part des conversations au cours desquelles le lecteur a ouvert une page citée. Un sujet avec une intention d’achat et aucun clic est une fuite commerciale : la réponse était correcte, mais n’a fait avancer personne. L’unité est une conversation, pas une question, car quatre questions posées par un même lecteur bloqué et une question posée par chacun de quatre lecteurs donnent des nombres identiques et des conclusions opposées. |
set_chat_system_prompt |
Là où la correction prend effet — transforme l’assistant de bibliothécaire en commercial : qualifier, traiter l’objection, orienter vers une démonstration. |
set_chat_hooks / test_chat_hook |
Hooks pré/post-LLM : injecter du contexte en temps réel (tarification, disponibilité, forfait du lecteur) ou recueillir un prospect dès que l’intention apparaît. |
get_ai_questions |
Journal des questions mot pour mot — matière première pour la FAQ, les e-mails d’onboarding et le traitement des objections. |
Une objection tarifaire formulée dans le chat de votre documentation vaut plus qu’une consultation de page : le lecteur s’est lui-même qualifié et vous a dit exactement ce qui l’empêche d’acheter.
Agir sur le constat#
Un diagnostic sans correctif n'est qu'un rapport. Ces outils bouclent la boucle au sein d'une même connexion.
| Outil | À quoi il sert |
|---|---|
search_docs |
Des sections textuelles verbatim et citables — modes texte, regex, titre ou chemin. Ce qu'un agent lit avant de modifier, afin de changer les bonnes lignes. |
search |
Recherche sémantique (fondée sur les embeddings) — trouve une page selon ce qu'elle signifie, et non selon ce qu'elle dit littéralement, à l'aide d'un index vectoriel préconstruit. Elle détecte la question en langage naturel dont les formulations ne ressemblent en rien au titre de la page. Disponible avec tous les forfaits, elle fournit toujours une réponse : un projet qui n'a pas encore d'index reçoit la même réponse grâce à une recherche en texte intégral, et la réponse indique quel moteur a été utilisé (mode : semantic ou lexical). Disponible sans jeton sur le point de terminaison public de votre projet, afin que l'agent d'un lecteur puisse également rechercher dans votre documentation. |
get_doc_outline |
Chaque page avec son titre, son nombre de titres et sa taille. Une orientation rapide avant une recherche ou une écriture. |
write_docs |
Valide un ou plusieurs fichiers Markdown dans un seul commit git atomique. Transforme l'analyse en modification publiée. |
fetch_url |
Lit une page web publique sous forme de Markdown propre. L'outil qui permet à un agent de vérifier une page par rapport au monde extérieur à votre espace de travail — les tarifs d'un concurrent, votre propre site marketing ou la validité d'un lien dont dépend un document. |
list_tool_calls |
À appeler avant toute modification. Chaque lecture effectuée ici est conservée avec la réponse qu'elle a fournie, de sorte que tout outil de lecture constitue un instrument de comparaison. Cet outil les regroupe en séries — un outil sur une page, un titre, un hôte, une requête de recherche ou l'ensemble du site, et une lecture portant sur tout un ENSEMBLE de formulations est classée sous cet ensemble — et indique lesquelles disposent déjà d'une seconde lecture à comparer. Sans cela, la même recommandation est formulée indéfiniment avec la même assurance, et une réécriture est publiée sans référence de départ permettant de l'évaluer. |
compare_tool_calls |
À appeler après la mise en production, pour une modification qui n'était pas un commit — un paramètre, une langue, la navigation ou l'invite de l'assistant. Place côte à côte deux lectures du même instrument et indique chaque chiffre qui a changé, ce qui est apparu, ce qui a disparu et combien de champs n'ont pas changé, ce qui constitue le dénominateur. Un pourcentage vaut null lorsque la référence était égale à zéro, jamais ∞. Aucune conclusion volontairement : deux lectures effectuées à une semaine d'intervalle sont deux faits, pas une relation de cause à effet. |
search_tool_calls / get_tool_call |
Retrouvez une lecture passée selon son contenu — la page concernée, un mot de la réponse ou une erreur renvoyée — classée de sorte que les appels qui portent réellement sur une page devancent ceux qui ne font que la mentionner ; puis lisez-en une dans son intégralité. |
list_memory / add_memory / edit_memory / remove_memory |
La synthèse du projet entre les sessions : à quoi servent ces documents (goal), ce à quoi personne n'a encore répondu (question), ainsi que les faits, règles et préférences que chaque agent devrait autrement déduire à nouveau à chaque exécution. Lisez-la avant de décider quoi que ce soit — les objectifs sont ce à quoi l'on confronte une recommandation, et la règle du propriétaire prime sur l'interprétation du site par l'agent. Répondez-y : tout ce que la session suivante devrait redéduire, un question au moment où vous devineriez autrement, ainsi qu'une réponse à l'une des questions que vous avez clôturées. Visible et modifiable par le propriétaire dans la vue d'ensemble du panneau, afin que rien de ce qui s'y trouve ne soit constitué de notes privées d'un agent sur le produit de quelqu'un d'autre. |
get_page_diff_impact |
À appeler après la mise en production, pour une modification qui ÉTAIT un commit. Cette modification a-t-elle réellement aidé ? Compare les pages touchées par un commit aux pages qu'il n'a pas touchées, avant et après — répartition des résultats, résolution en libre-service, délai avant la première valeur. Les pages non touchées constituent le groupe témoin, et c'est là tout l'intérêt : le trafic de la documentation évolue pour des raisons sans rapport avec votre modification, qui ne compte comme une amélioration que si elle dépasse la tendance du site. Une modification qui l'a simplement égalée est signalée comme sans effet, et non comme une réussite. Répartit également les visites par pays, langue du lecteur et appareil, chacune à côté de l'évolution de la même catégorie sur les pages non touchées — ce qui permet de transformer « le trafic a augmenté » en décision. Lorsque vous avez défini un prix moyen et une URL d'appel à l'action, l'outil chiffre également la modification — conversions et revenus sur les pages touchées, avant et après. Appelé sans commit, il répertorie les commits qu'il peut mesurer. |
update_navigation |
Le correctif d'un défaut get_route_patterns ou get_reverse_funnel trouvé — souvent moins coûteux et plus efficace que la réécriture d'une page. |
find_skill / find_widget |
Découvrez une fonctionnalité prépackagée — une compétence de workflow, un widget interactif — au lieu d'en écrire une. |
list_issues / get_issue / create_issue |
Le propre gestionnaire de tickets GitHub du projet. Tous les constats ne correspondent pas à une modification que vous effectuez dans la foulée — create_issue permet d'en consigner un qui ne l'est pas au lieu de le laisser s'achever avec la conversation. Utilisez d'abord list_issues, afin qu'un constat ne fasse pas doublon avec un ticket déjà ouvert. La création nécessite un jeton en lecture-écriture ; la lecture n'en nécessite pas. |
Savoir sans regarder#
Un tableau de bord ne fonctionne que si quelqu’un l’ouvre. Un webhook fonctionne en permanence. L’enregistrement d’un webhook coûte un appel d’écriture ; chaque livraison qu’il effectue ensuite est un appel sortant du réseau Docsbook.
| Outil événementiel | Valeur |
|---|---|
register_webhook_chat_no_answer |
L’assistant vient de faire défaut à un lecteur — dans Slack, en quelques secondes, alors qu’il se trouve peut-être encore sur la page. |
register_webhook_search_no_results |
La même chose, pour la recherche. |
register_webhook_traffic_spike / _drop |
Un pic est soit une réussite marketing qui mérite d’être exploitée, soit un incident qui oriente les utilisateurs vers le dépannage. Une baisse après une mise en production est une régression que vous ne détecteriez autrement que le trimestre prochain. |
register_webhook_content_outdated |
La documentation qui s’éloigne du produit — la cause première de la plupart des mauvaises réponses de l’IA. |
register_webhook_chat_negative_feedback, _feedback_received |
La réclamation explicite du lecteur, transmise à la personne responsable de cette section. |
register_webhook_usage_limit_approaching, _overage_limit_reached |
Maîtrise du budget — aucune facture surprise. |
list_webhooks, unregister_webhook, list_webhook_deliveries, replay_webhook_delivery, test_webhook |
Gérer les éléments ci-dessus : auditer, réessayer, vérifier. |
Portée et propriété#
| Outil | Valeur |
|---|---|
update_languages |
Activez une langue cible. Consultez parallèlement la répartition par pays et par langue dans get_analytics : traduisez là où se trouvent déjà les lecteurs, et non là où vous espérez qu’ils seront. |
set_translation_mode, run_translation_pass, get_translation_status, upload_translation, approve_translation, list_pending_translations, get_translation, delete_translation |
Le pipeline de traduction — run_translation_pass lance une véritable synchronisation automatique de rattrapage et get_translation_status indique la couverture de chaque langue avant que vous n’investissiez dans l’une d’elles, ou que vous n’importiez des traductions externes avec validation humaine. |
update_access |
Espace de travail privé, mot de passe ou votre propre SSO/OIDC. Permet de vendre aux entreprises dont le processus d’achat l’exige. |
update_domain |
Documentation sur votre propre domaine — l’autorité SEO s’accumule pour vous, et non pour le sous-domaine d’un fournisseur. |
update_branding, update_ui_settings |
Votre produit, pas celui d’une plateforme. |
Les combinaisons qui rapportent#
Aucun des outils ci-dessus ne constitue le produit. Ce sont ces boucles qui le constituent.
Boucle 1 — « Quelle page me fait perdre des clients ? »#
get_visit_outcomes → the rate: 31% of visits end with nothing
get_dead_end_pages → which pages those visits died on
get_rage_signals → what the reader was trying to do there
list_tool_calls → has this page been "fixed" before, and did it work?
search_docs → write_docs → ship the fix
get_page_diff_impact → did the edited pages beat the pages you did not touch?
compare_tool_calls → …and for a change that was not a commit, the same
reading before and afterLe taux à lui seul n’est pas exploitable, la seule liste des pages n’indique pas de cause, et une correction sans list_tool_calls répète une modification qui a échoué avec une confiance absolue. C’est la dernière étape qui boucle le processus : une tendance à l’échelle du site évolue pour une douzaine de raisons, donc « le taux s’est amélioré après mon commit » ne constitue une preuve que lorsque les pages que vous avez modifiées se sont améliorées davantage que celles que vous avez laissées telles quelles. Seule cette séquence produit un changement que vous pouvez défendre.
Boucle 2 — « Ma navigation ment-elle aux lecteurs ? »#
get_route_patterns → a frequent 3-page route that keeps ending badly
get_reverse_funnel → the route successful readers actually take
update_navigation → promote the working entry point
get_forward_funnel → confirm completion on the declared route improvedUne route qui échoue alors que ses pages individuelles obtiennent de bons résultats est un défaut de navigation — get_content_health continuerait à pointer indéfiniment vers des pages saines.
Boucle 3 — « Où les affaires nous échappent-elles ? »#
get_chat_intent → 40 pricing-stage conversations, a competitor named in 12
get_chat_conversations → those topics have near-zero click_through
set_chat_system_prompt → handle that objection, route to a demo
write_docs → a comparison page that answers it once and for all
get_chat_intent (later) → did the objection stop recurring?La seule boucle, dans n’importe quel produit de documentation, qui commence par une objection formulée et se termine par une réponse publiée. click_through est ce qui distingue « l’assistant a répondu » de « l’assistant a vendu ».
Boucle 4 — « Suis-je visible par l’IA, et cela a-t-il attiré quelqu’un ? »#
write_docs → shape the passage an engine can lift
collect_ai_citability → confirm the markup is really on the live page
get_analytics (ai_bots) → confirm crawlers are actually reading it
get_search_rankings → track classic-search position alongside
get_analytics (referrers) → referrals arriving from AI assistants
get_visit_outcomes → and whether those arrivals end in successLa dernière étape est celle que tout le monde oublie. Un trafic provenant d’une réponse d’IA qui s’arrête net est pire que l’absence de trafic : vous avez gagné en visibilité et gaspillé l’impression.
La boucle d’auto-réparation#
Exécutez la boucle 1 selon une planification depuis la CI :
weekly: get_content_health → take the worst 3, and this reading is
also the baseline for next week
list_tool_calls → skip anything already tried and failed
search_docs → write_docs → open a PR
get_page_diff_impact → report on the PR whether the edited pages
beat the untouched ones, or say they did not
compare_tool_calls → next week, this week's reading against
last week's, on the same pagesUne documentation qui se répare elle-même et montre son travail — « a vu le problème » et « a corrigé le problème » sans perdre la connexion.
Bibliothèque de prompts#
Une requête par levier ci-dessus, avec les mots que vous saisiriez réellement — collez l’une de ces requêtes dans Claude Code, Cursor ou un autre client connecté une fois OAuth terminé :
- Acquisition : « Les assistants IA lisent-ils réellement notre documentation, et où nous classons-nous dans Google pour notre propre guide de démarrage rapide ? » →
get_analytics(répartition des robots IA),get_search_rankings - Conversion : « Quelle page fait fuir les lecteurs, et pourquoi ? » →
get_visit_outcomes,get_dead_end_pages,get_rage_signals - Ventes : « Récupère chaque conversation de chat dans laquelle quelqu’un nous comparait à un concurrent. » →
get_chat_intent - Coûts évités : « Que demandent les utilisateurs à l’assistant de documentation, mais qu’il ne peut pas répondre ? » →
get_ai_unanswered,get_failed_searches
docsbook_expert répond d’abord à chacune de ces requêtes avec le parcours complet dans l’ordre ; les outils nommés ci-dessus sont ceux qu’il finit par appeler.
Confier l'ensemble du travail#
Chaque outil ici répond dans l'appel qui l'a sollicité. Il n'y a aucun travail à démarrer ni aucune exécution à suivre.
Il y en avait autrefois quatre — run_docs_analyze, run_docs_create, run_docs_manage, run_docs_automate — qui exécutaient une compétence de notre côté sur votre espace de travail et renvoyaient un identifiant d'exécution à suivre. Ils ont disparu, tout comme get_agent_run, list_agent_runs et cancel_agent_run. Auditer un site, en créer un, le restructurer ou mettre en place ses outils de surveillance demande toujours plusieurs minutes de travail, mais ce sont des minutes que votre propre agent est déjà en train de consacrer au dépôt, et une exécution que vous ne pouvez pas suivre est une moins bonne façon de les acheter.
Ce qui les a remplacés est docsbook_expert, l'agent unique de ce serveur, qui conseille plutôt qu'il n'exécute : demandez-lui ce que vous voulez, avec vos propres mots, et il répond en expliquant comment aborder la demande, les étapes dans l'ordre avec l'outil à utiliser pour chacune, qui exécute chacune d'elles, ce qu'il faut faire circuler entre elles, ce qui rendra la réponse erronée et ce qu'il vaut la peine de retenir. Il indique également les deux textes à consulter avant toute chose — ce que vous avez déclaré comme définissant le bon fonctionnement de cette documentation, et ce que vos lecteurs ont réellement demandé — car un conseil donné sans ces éléments est vrai à propos de la documentation en général et irréfutable lorsqu'il s'agit de votre site. Ensuite, votre agent effectue le travail, avec vos jetons, aux tarifs de lecture. find_skill fournit toujours la méthode détaillée lorsque vous voulez l'ensemble du règlement plutôt qu'un parcours pour le parcourir.
Acheter les éléments probants sans l’avis#
Un audit effectue sept opérations en un seul appel : collecte, normalisation, interprétation, évaluation, notation, classement et recommandation. Exécutez les deux premières deux fois et vous obtenez la même réponse, et n’importe qui peut les refaire manuellement et les vérifier. À partir de judge, la réponse vient du modèle. Auparavant, les deux moitiés étaient facturées comme une seule exécution d’agent, ce qui signifiait que la moitié que vous pouvez vérifier était vendue au prix de celle à laquelle vous devez faire confiance.
Cinq collecteurs constituent la première moitié à eux seuls, facturés comme un probe plutôt que comme une exécution d’agent :
| Outil | Ce qu’il renvoie |
|---|---|
collect_page_text |
Vos pages en direct telles que le réseau les sert réellement — statut, titre, méta-description, titres, blocs de code et nombre de mots de prose qui subsistent sans moteur JavaScript — à côté de la taille de la source que nous conservons pour le même chemin. L’écart entre les deux constitue le constat : 8 000 caractères dans le dépôt qui deviennent 40 mots à l’arrivée correspondent à une page parfaite pour toutes les vérifications qui lisent la source, mais impossible à citer pour tout assistant qui lit la page. |
collect_corpus_map |
Chaque page avec sa taille, son nombre de titres et sa profondeur, les sections, les pages factices et la part de son contenu atteinte par la navigation. |
collect_assistant_questions |
Ce que les lecteurs ont demandé à votre assistant documentaire, mot pour mot, les demandes restées sans réponse, le taux de réponse avec son dénominateur et les langues dans lesquelles les demandes sont arrivées. |
collect_traffic |
Qui est arrivé, comment les visites se sont terminées, sur quelles pages elles se sont terminées et les séquences de 2 à 4 pages parcourues par les lecteurs — quatre tableaux, conservés séparément. |
collect_onsite_search |
Ce que les lecteurs ont saisi dans votre propre champ de recherche, ce qui n’a rien renvoyé et ce qui a renvoyé des résultats sans obtenir de clic — trois tableaux, conservés séparément, car le premier correspond à une page manquante et le second à un titre qui ne convainc pas. |
Aucun modèle n’intervient dans le processus, il n’y a donc rien à mettre en doute — et la charge utile le prouve au lieu de l’affirmer. Chaque réponse contient un bloc reproduce : les appels MCP exacts et les arguments utilisés, pour chaque ligne. Exécutez-les vous-même et vous obtiendrez exactement le même enregistrement, à l’exception de l’horodatage. Rien de ce que renvoie un audit ne peut offrir cela, car la réponse d’un audit est passée par un modèle.
Ce que vous n’obtenez pas, c’est un jugement. Aucun constat, aucune note, aucun classement, aucune recommandation — un collecteur qui en inclurait discrètement un serait une exécution de modèle à une fraction du prix. Pour obtenir le jugement, demandez à docsbook_expert comment lire les lignes : il répond avec la méthode et ce qui rendrait cette lecture erronée.
Quand l’option bon marché est la bonne. collect_corpus_map n’a besoin d’aucune donnée de recherche, d’aucun trafic ni d’aucun historique, et renvoie de vraies lignes sur un site mis en ligne ce matin — utile précisément pour les projets où toute question formulée comme une question d’analytics reçoit la réponse « pas encore assez de données ».
Ce qui manque est dit explicitement. Une source impossible à lire apparaît trois fois — dans skipped, dans unavailable avec ce qu’elle aurait apporté, et dans sa propre ligne reproduce avec la raison de son échec. Un taux pour lequel il n’y a rien à diviser revient sous la forme null, accompagné de la raison, jamais sous la forme d’un zéro, et chaque taux indique son dénominateur.
Interpréter honnêtement les chiffres#
Chaque réponse d’analyse du serveur MCP Docsbook comporte ses propres réserves dans un champ metrics. Trois méritent d’être répétées :
- Les visiteurs sont des adresses IP hachées. Le NAT des bureaux regroupe plusieurs lecteurs en un seul ; les réseaux mobiles divisent un lecteur en plusieurs. Présentez les tendances, jamais les effectifs —
get_retentionest le plus concerné. - Les taux ne sont pas communiqués en dessous de 30 visites, et les journées à faible trafic sont signalées
thin. Un taux de sorties sans suite de 100 % sur quatre visites n’est que du bruit. terminal_successn’est pas un échec. Une page que les utilisateurs quittent après avoir copié un extrait est la meilleure page que vous ayez. Tous les outils de classement les exemptent — ne réintroduisez pas cette erreur manuellement.
Comment rechercher et modifier le contenu de la documentation depuis un agent ?#
Il existe deux façons de travailler avec le contenu de votre documentation depuis un agent, et celle que vous choisirez dépend de la présence ou non du dépôt sur le disque de l’agent :
- Hébergé, via des jetons MCP —
search_docs(lecture seule ; fonctionne avec tout jeton connecté, quelle que soit sa portée),get_doc_outline(lecture seule ; répertorie le titre, le nombre de titres et la taille de chaque page Markdown avant toute recherche ou écriture), etwrite_docs(nécessite un jeton autorisé avec une portée lecture-écriture ; valide un ou plusieurs fichiers en un seul commit Git atomique). Ces opérations s’exécutent directement sur le dépôt hébergé par Docsbook, sans nécessiter de copie de travail locale. - En local, via
markdown-lsp— pour un agent qui travaille directement sur les fichiers extraits,markdown-lsprépond à des questions plus riches sur le graphe (structure de l’espace de travail, recherche approximative de titres, recherche en texte intégral avec contexte, liens entrants et sortants, résolution des liens) sous forme de commandes exécutées par l’agent —npx markdown-lsp <subcommand> ./docs— ou en tant que serveur de langage. Il ne s’agit pas d’un serveur MCP et aucun jeton n’est nécessaire. Consultez Source de vérité pour obtenir la liste des sous-commandes et leur justification.
Utilisez search_docs/write_docs lorsque l’agent dispose uniquement d’une connexion MCP (sans copie de travail locale) ; utilisez markdown-lsp lorsque l’agent possède déjà le dépôt sur le disque et souhaite une navigation plus approfondie dans le graphe.
Sur quoi prélève un appel au serveur MCP Docsbook ?#
Chaque appel facturé au serveur MCP Docsbook est prélevé sur le solde du projet concerné par l'appel — le même solde alimenté par un rechargement et utilisé par le reste du travail d'IA de ce projet. Il n'existe pas de compteur distinct pour MCP ni de quota mensuel d'appels à prévoir. L'argent est la seule limite.
Un appel est facturé à un montant fixe, défini avant son exécution et indépendant de la taille de la réponse. Le même appel de rapport prélève la même somme sur un site de dix pages que sur un site de dix mille pages. Le montant dépend de ce que l'exécution de l'appel oblige le serveur à faire :
| Classe | Ce que l'appel fait faire au serveur | Outils concernés |
|---|---|---|
| Inclus | Rien de plus qu'une recherche | get_info, find_skill, find_widget, list_workspaces, get_workspace, create_workspace |
| Lecture | Lit une ligne déjà stockée | Une page, un paramètre ou une ligne de registre — la classe dans laquelle tombe un outil non classifié |
| Écriture | Modifie l'état stocké | create_*, update_*, set_*, delete_*, register_*, unregister_*, upload_*, approve_*, mark_* |
| Analytique | Analyse le stockage des événements | Entonnoirs, parcours, rétention, classements, flux, query_events |
| Sortie | Quitte le réseau Docsbook | fetch_url, read_source, test_*, replay_*, les quatre lectures de suivi (list_issues, get_issue, get_pull_request, search_prior_work), ainsi que les outils de scraping adossés à des fournisseurs |
| Sonde | Rassemble et normalise une famille de faits, sans modèle | collect_* |
| IA | Appelle un modèle pour écrire, lire ou classer | write_docs, search_docs, search, get_insights, get_chat_intent |
| Lens | Effectue un passage de modèle sur un enregistrement de preuves qui lui a été transmis, relu sous un angle unique déclaré | Réservé (lens_*) — aucun outil ne relève aujourd'hui de cette classe |
| Agent | Exécute un agent complet derrière un seul appel | Aucun aujourd'hui. Les 135 outils d'action, les 41 objectifs agent_*, les quatre exécuteurs run_docs_* et audit_geo relevaient de cette classe jusqu'au 2026-09-12 ; leurs appels historiques continuent d'être tarifés et rapportés dans cette classe. audit_geo lui-même a été renommé collect_ai_citability et est désormais facturé comme une sonde — sa couche de preuves est du code, pas un modèle |
⚡ La tarification par outil au sein de la classe Agent a disparu avec la famille d'actions. Lorsqu'ils étaient 135, chacun était tarifé en fonction du travail qu'il déclarait — le nombre de familles de preuves qu'il lisait, le nombre d'allers-retours avec le modèle qu'il pouvait effectuer, et s'il quittait votre site — de sorte qu'une observation ciblée ne coûtait qu'une fraction d'une analyse approfondie. Ce qui reste dans la classe couvre honnêtement toute la plage, et est donc tarifé au niveau de cette plage.
Le montant actuel de chaque classe et de chaque outil est indiqué sur la propre ligne de l'outil dans la section MCP de votre panneau d'administration, lu en temps réel depuis le serveur plutôt que depuis une copie écrite, ainsi que sur la page des tarifs de Docsbook. Cette page ne donne volontairement aucun montant : un prix copié dans la documentation est un prix qui devient obsolète sans que personne ne s'en aperçoive.
La découverte n'est jamais facturée. Décrire le serveur, trouver une compétence ou un widget, répertorier vos espaces de travail et en créer un ne coûte rien — vous ne devriez pas être facturé pour la prise de contact ni pour l'appel qui crée l'élément ensuite facturé.
Le projet qui paie est déterminé à partir de l'appel lui-même — l'espace de travail que vous avez nommé, le dépôt auquel il est rattaché — et il s'agit toujours d'un projet dont vous êtes propriétaire. Un appel qui ne nomme aucun projet est exécuté sans facturation. Un outil qui poursuit un travail d'IA prélève également le montant correspondant à ce travail ; les deux montants s'additionnent au lieu de se remplacer.
Lorsque le solde est épuisé, un appel facturé est refusé avant son exécution, et le refus indique quel projet est à court de fonds, ce que l'appel prélève, ce qu'il reste et où recharger ce projet. Aucun montant n'est crédité sur un solde selon un calendrier, mais vous pouvez configurer votre propre paiement mensuel sur l'écran de facturation, qui recharge le même solde chaque mois. La découverte gratuite continue de fonctionner, afin que votre agent puisse toujours savoir ce qui s'est passé.
Un appel qui échoue reste facturé — le travail a été effectué, et la réponse le précise. Un appel que le serveur n'a jamais réussi à exécuter n'est pas facturé.
Vous pouvez lire les appels ligne par ligne. La section Agent du projet les présente comme la conversation qu'ils constituaient : un flux continu, séparé uniquement par jour, chaque appel apparaissant sur sa propre ligne et indiquant son objectif, les paramètres utilisés et le résultat renvoyé — vous pouvez ainsi déterminer si un agent modifie quoi que ce soit sans ouvrir une seule ligne. Cliquez sur l'un d'eux pour afficher le résultat complet, les arguments qui lui ont été transmis et l'auteur de l'appel. Ces mêmes appels apparaissent également dans le panneau Flux lorsque vous préférez les consulter sous forme de tableau filtrable, restreint par classe de facturation. Les appels qui ne concernaient aucun projet précis (décrire le serveur, répertorier vos projets, en créer un) appartiennent à votre compte et n'apparaissent dans aucun des deux ; les appels de découverte ne laissent aucune ligne.
La section Agent est également l'endroit où vous en démarrez un. Elle propose un seul prompt à coller dans l'agent d'IA que vous utilisez déjà, avec une fréquence à choisir au préalable — toutes les heures, toutes les quatre heures, toutes les douze heures ou une fois par jour. Le choix est inscrit directement dans le prompt, ligne cron comprise, de sorte que ce que vous copiez se suffit à lui-même.
L'accès non authentifié et limité à un dépôt vers un site de documentation public n'est jamais facturé.
Ce qu’un jeton est autorisé à faire#
L’accès au serveur MCP de Docsbook est déterminé par le jeton, et non par un niveau. Un jeton porte une portée, et la portée est la seule chose qui distingue la lecture de l’écriture :
- Lecture seule — tous les outils de rapports, de recherche et de plan répondent.
write_docs,create_issue,connect_sourceetconfigure_sourcerefusent la requête et en expliquent la raison. Ces quatre outils sont actuellement ceux qui vérifient la portée ; les outils d’écriture des paramètres, des webhooks, des objectifs et des traductions sont protégés uniquement par la propriété du projet. Ainsi, un jeton en lecture seule n’est pas un jeton qui « ne change rien » — voir Sécurité du serveur MCP. - Lecture-écriture — tout ce que le compte peut faire : valider des pages, créer des tickets, connecter des sources et modifier les paramètres.
- Aucun jeton — sur un point de terminaison associé à un dépôt (
docsbook.io/{owner}/{repo}/api/mcp/server),get_info,find_skill,find_widgetetlist_content_widgetsrépondent à partir du catalogue public, etsearchrépond à partir de la documentation propre à ce site — le seul outil ici qui lit un projet, car ce qu’il lit est le site publié. Il est refusé sur un site privé, sur un site dont le forfait a expiré, sur un point de terminaison qui n’est pas associé à un site et lorsque le projet n’a plus de solde IA ; il ne prend aucun argument de projet et ne peut donc lire que le site auquel il est associé. Tous les autres outils nécessitent un jeton Bearer valide associé à un compte Docsbook.
Lorsqu’un appel est refusé, le serveur renvoie une erreur structurée indiquant la raison, plutôt qu’un simple 403, afin que l’agent puisse expliquer au lecteur ce qu’il doit corriger. Consultez Serveur MCP — Confiance & sécurité pour découvrir le flux d’authentification et ce que le serveur stocke.
Dépannage / FAQ#
Les outils des agents/MCP fonctionnent-ils toujours ? Oui. Le 12/09/2026, le moteur d’agent permanent décrit dans les anciennes ressources — un agent planifié qui s’exécutait de lui-même, ainsi que les 135 outils d’action et les 4 exécuteurs run_docs_* qui ne s’exécutaient qu’à l’intérieur de celui-ci — a été retiré. Il reste un agent : docsbook_expert, qui fournit des conseils en un aller-retour au lieu de s’exécuter sans surveillance. Chaque connexion et tous les autres outils de cette page fonctionnent exactement comme indiqué ci-dessus.
Mon client affiche toujours l’outil sous le nom docsbook, et non docsbook_expert — la connexion a-t-elle été interrompue ? Non. Un client MCP lit la liste des outils une seule fois, au moment de la connexion, et conserve ces noms pour le reste de la session. Le serveur résout l’ancien nom au lieu de le refuser, donc rien n’est interrompu — reconnectez le client pour voir le nom actuel.
Un appel a été refusé en raison d’un solde nul — que s’est-il passé ? Le refus indique le projet, ce que l’appel consomme et ce qu’il reste. Se reconnecter ou réessayer ne résoudra pas le problème ; créditez le solde du projet depuis le panneau. Les appels de découverte (get_info, find_skill, ainsi que la liste et la création d’espaces de travail) ne sont jamais facturés et continuent de fonctionner dans tous les cas.
Vers où me tourner si un appel est refusé pour une raison autre que le solde ? Le serveur renvoie une erreur structurée indiquant la raison — une portée manquante sur un jeton en lecture seule, NO_GITHUB_ACCESS lorsque les propres identifiants de Docsbook ne peuvent pas accéder à un dépôt de votre propre compte GitHub, ou un site privé. Consultez Sécurité du serveur MCP pour savoir ce que chaque portée de jeton permet ou ne permet pas de faire.
Articles associés#
- Référence des outils MCP — chaque outil avec ses paramètres.
- Hooks de chat — Configurez les hooks pré/post-LLM via MCP.
- Compétences de documentation — Découvrez les fichiers SKILL.md via
find_skill, ou demandez àdocsbook_expertl’itinéraire pour y accéder. - Webhooks — Enregistrez des gestionnaires d’événements depuis MCP et vérifiez leurs signatures.
- Tarification — ce sur quoi s’appuie un appel facturé à l’usage, généré à partir des constantes de facturation en temps réel.