Générez du Contenu SEO Directement depuis votre LLM : Le Guide Complet Wisewand MCP
Alex Mis à jour le 8 août 2026
Wisewand publie un seul paquet npm, @wisewandtools/mcp-server, qui contient deux choses : un serveur MCP, que votre LLM interroge tout seul pendant une conversation, et une commande de terminal, wisewand, faite pour les scripts, les tâches planifiées et l'intégration continue.
Les deux exposent exactement les mêmes 89 outils, répartis en 14 familles. Node 20 ou plus, licence MIT, une clé API qui commence par sk_live_. Version 3.1.0 au moment où ces lignes sont écrites.
Vous utilisez déjà un LLM pour écrire, chercher et structurer. La question de cet article est plus étroite et plus utile : comment lui donner la main sur une chaîne de production de contenu complète, de la création d'un article jusqu'à sa publication sur votre site, et comment faire la même chose sans LLM du tout quand vous voulez juste qu'une machine s'en charge à 6 heures du matin.
Ce guide est écrit à partir du paquet publié, relu de première main : les comptes, les commandes, les codes de sortie et les comportements décrits ici ont été vérifiés en interrogeant le binaire, pas en recopiant une documentation.
Qu'est-ce que Wisewand MCP ?
Wisewand MCP est un serveur Model Context Protocol qui donne à un LLM 89 outils de création de contenu : écrire un article, générer des pages catégorie ou produit, gérer des personas et des projets, publier sur WordPress, Shopify, WooCommerce ou PrestaShop. Il s'installe en une commande et se pilote en langage naturel.
Le Model Context Protocol est un standard ouvert introduit par Anthropic. Il définit la façon dont un modèle découvre des outils extérieurs, lit leur description, remplit leurs paramètres et interprète leur réponse. Concrètement : vous ne cliquez pas, vous ne collez pas, vous demandez. Le modèle choisit l'outil.
Le serveur Wisewand est l'implémentation de ce standard au-dessus de l'API Wisewand, celle qui fait déjà tourner l'application. Et le point qui commande tout le reste de cet article : le paquet ne contient pas que le serveur. Il contient aussi une commande de terminal, qui expose la même chose sans qu'aucun LLM soit dans la boucle.
| Ce qui est publié | Valeur |
|---|---|
| Paquet npm | @wisewandtools/mcp-server, version 3.1.0 |
| Commandes installées | wisewand (le CLI), mcp-server et wisewand-mcp (le serveur) |
| Surface MCP | 89 outils, 6 ressources, 4 prompts |
| Moteur | Node.js 20 ou plus, modules ES |
| Licence | MIT |
| API sous-jacente | https://api.wisewand.ai/v1, authentification Bearer |
Les 4 prompts (onboarding_wizard, blog_post_wizard, content_campaign, seo_optimization) sont servis par le serveur lui-même. Autrement dit, l'assistant de prise en main n'est pas quelque chose à installer : vous demandez à votre LLM d'utiliser l'assistant d'onboarding, et il vous guide.
Pourquoi cela change tout
Le gain n'est pas « une IA qui écrit ». C'est que la production de contenu se pilote depuis l'endroit où vous réfléchissez déjà : une conversation, un script, un cron. Plus de va-et-vient entre un outil de recherche, un traitement de texte, un générateur d'images et l'admin de votre site.
Cinq types de contenu sont couverts, et chacun a son cycle complet de la création à la publication.
| Ce que vous produisez | La famille d'outils | À quoi ça sert |
|---|---|---|
| Articles de blog | articles | Le format long, avec FAQ, sommaire, images et maillage interne |
| Contenus pour Google Discover | discover | Écrits pour le fil Discover, pas pour la recherche |
| Rafraîchissement d'articles publiés | update-posts | Reprendre un contenu ancien sans changer son URL |
| Pages catégorie | category-pages | Les pages de collection d'un site e-commerce |
| Pages produit | product-pages | Les fiches, avec comparatifs et liens d'affiliation |
Côté publication, quatre plateformes plus une sortie générique : WordPress, Shopify, WooCommerce, PrestaShop, et un webhook pour tout le reste. Si votre site tourne sous WordPress, le connecteur WordPress et la connexion Shopify ont chacun leur page dédiée.
La langue et le pays se choisissent article par article : le schéma de l'outil accepte 83 codes de langue et 239 codes de pays, qui sont les paramètres hl et gl de Google. Ce ne sont pas des traductions : c'est le même outil, réglé pour un marché.
Rien de tout cela ne garantit une position dans Google ni une citation par un moteur de réponse. Ce que ça change, c'est le coût unitaire d'une publication propre et le nombre de contextes que vous devez garder en tête.
Trois portes vers les mêmes 89 outils
Il y a trois façons d'utiliser Wisewand, et elles donnent accès au même registre de 89 outils : le serveur MCP pour piloter en conversation, la commande wisewand pour les scripts et l'automatisation, l'API REST pour intégrer dans votre propre code. Le serveur et le CLI sont dans le même paquet npm.
| Vous êtes | La porte | Pourquoi elle |
|---|---|---|
| Dans une conversation avec un LLM | Le serveur MCP | Le modèle choisit l'outil, remplit les paramètres et lit la réponse. Vous n'écrivez aucune commande. |
| Dans un script, un cron, une CI | Le CLI wisewand | Les mêmes 89 outils, sans client MCP et sans LLM. C'est le même paquet npm. |
| Dans votre propre code | L'API REST | Spécification OpenAPI publique, authentification Bearer, 60 requêtes par minute. |
Pourquoi le CLI est souvent le meilleur choix
Dès que vous sortez de la conversation, la commande devient le chemin le plus court. Quatre raisons, qui sont des faits de conception et pas des arguments.
- La sortie s'adapte toute seule. Un tableau lisible quand la sortie est un terminal, du JSON dès qu'elle est redirigée ou passée dans un tube. Donc
| jqfonctionne sans aucun drapeau. Dans un script, on épingle quand même avec--json,--tableou--markdown, pour ne pas dépendre du contexte d'exécution. - Les journaux ne polluent jamais la sortie. Les messages de progression et de débogage partent sur
stderr, toujours.wisewand articles list > out.jsonproduit donc un fichier propre. La variableNO_COLORest respectée. - Sept codes de sortie, dont un dédié au dépassement de quota. Un cron devient scriptable sans avoir à analyser du texte d'erreur.
- Le même registre. Le CLI n'est pas une réécriture de l'API : c'est la seconde projection du même registre d'outils, et ses drapeaux sont dérivés du schéma JSON de chaque outil. C'est ce qui garantit que les deux portes ne divergent pas.
wisewand articles create "Comment choisir sa cafetière" --lang fr --length 1200
wisewand articles list --json | jq '.items[].id'Installation et configuration
L'installation du serveur MCP tient en trois gestes : récupérer une clé, déclarer le serveur auprès de votre client, vérifier que les outils sont bien là.
Étape 1 : obtenez votre clé API
Créez ou ouvrez votre compte, puis copiez la clé affichée sur la page dédiée aux accès API.
- Rendez-vous sur app.wisewand.ai/api.
- Copiez la clé : elle commence par
sk_live_en production, parsk_test_en test. - Gardez-la de côté, l'étape suivante en a besoin.
Étape 2 : installez les serveurs MCP
Déclarez le serveur auprès de votre client MCP, avec la clé de l'étape précédente.
Avec Claude Code, une seule commande suffit, et elle ne pose aucune question :
claude mcp add -e WISEWAND_API_KEY=sk_live_VOTRE_CLE wisewand -- npx -y @wisewandtools/mcp-serverLe séparateur -- est obligatoire : il sépare les options de claude mcp add de la commande qui lance réellement le serveur. Sans lui, npx et ses arguments sont interprétés comme des options de claude.
Il existe une variante plus propre, et c'est celle que nous recommandons. Installez d'abord le paquet, enregistrez la clé une bonne fois avec le CLI, puis déclarez le serveur sans clé sur la ligne de commande :
npm install -g @wisewandtools/mcp-server
wisewand login
claude mcp add wisewand -- npx -y @wisewandtools/mcp-serverLe bénéfice est concret : la clé n'entre jamais dans l'historique de votre shell, ni dans la liste des processus de la machine.
| Client | Où se déclare le serveur |
|---|---|
| Claude Code | La commande claude mcp add ci-dessus |
| Claude Desktop | claude_desktop_config.json |
| Cursor | .cursor/mcp.json pour un projet, ~/.cursor/mcp.json pour tous |
| VS Code | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
Le fichier de configuration complet, réutilisable tel quel pour les quatre derniers clients, est donné en fin d'article.
Deux entrées nommées wisewand dans la même configuration, par exemple le paquet publié et une copie locale de développement, entrent en collision. Une seule à la fois : supprimez l'une avant de déclarer l'autre.
Étape 3 : vérifiez l'installation
Ouvrez une nouvelle session et demandez à votre LLM la liste des outils Wisewand disponibles.
Vous devez en voir 89. Si le compte est différent, c'est que le client a chargé une autre version du serveur, ou une seconde entrée en collision. Le serveur écrit d'ailleurs son inventaire sur stderr au démarrage, sous la forme {"tools":89,"resources":6,"prompts":4} : c'est le binaire qui compte, pas un humain.
Le serveur ne contacte pas l'API au démarrage : il vérifie seulement la forme de la clé. Une clé bien formée mais révoquée passe l'étape sans un mot, et ne se manifeste qu'au premier appel d'outil, par une erreur 401. Le CLI, lui, la rend visible par un code de sortie 3.
Bonnes pratiques de sécurité pour les clés API
Une clé sk_live_ donne un accès complet à votre compte et à vos crédits. Trois réflexes suffisent à couvrir l'essentiel.
- Préférez
wisewand loginà une clé en ligne de commande. Elle est alors stockée dans~/.wisewand/config.json, un fichier en droits600dans un répertoire en700. Le CLI vous avertit s'il le trouve plus permissif. - Le drapeau
--api-keyest visible dans la liste des processus. L'aide de la commande le dit elle-même. Réservez-le aux essais. - N'engagez jamais un fichier de configuration MCP dans votre dépôt. Ajoutez
.mcp.jsonà votre.gitignore.
Où exactement dois-je coller ma clé API ?
Cela dépend de la porte. Le CLI lit la clé à quatre endroits, dans cet ordre de priorité ; le serveur MCP, lui, n'en lit que trois : le fichier .env du répertoire courant ne le concerne pas.
Un détail de conception mérite d'être connu : quand la clé est mal formée, le message d'erreur nomme la source d'où elle venait. Il y a donc toujours un seul endroit où aller corriger.
Quel client dois-je utiliser ?
Celui dans lequel vous travaillez déjà. Les 89 outils sont identiques d'un client à l'autre, parce qu'ils viennent du même serveur : le client ne fait que transporter. Si vous n'avez pas de préférence, Claude Code a l'installation la plus courte, une seule commande sans fichier à éditer.
Et si votre besoin n'est pas conversationnel, ne choisissez pas de client : passez directement par la commande wisewand, décrite juste après.
Global ou au niveau du projet : lequel choisir ?
Au niveau du projet quand le contenu que vous produisez appartient à un dépôt précis, avec sa propre clé et ses propres scripts. En global quand vous vous en servez comme d'un outil personnel, dans n'importe quel dossier.
Le critère qui tranche vraiment : une déclaration au niveau du projet suit le dépôt, donc elle suit aussi vos collègues et votre intégration continue. C'est un avantage tant que la clé n'est pas dans le fichier, et un problème dès qu'elle y est. D'où la recommandation de l'étape 2.
Besoin d'aide ?
L'assistant d'onboarding est servi par le serveur lui-même : demandez à votre LLM d'utiliser l'assistant d'onboarding et il vous fait parcourir les 89 outils, un premier article pas à pas et cinq enchaînements réels, en une dizaine de minutes.
Pour tout le reste, l'adresse est support@wisewand.ai.
Le CLI wisewand, en détail
wisewand est la commande de terminal livrée avec le serveur MCP, dans le même paquet npm. Elle expose les mêmes 89 outils sans client MCP et sans LLM, sous la forme wisewand <ressource> <verbe>. C'est la porte à utiliser pour un script, une tâche planifiée ou une intégration continue.
Installer et s'authentifier
npm install -g @wisewandtools/mcp-server
wisewand setup # parcours guidé : clé, projet, persona, connexion de publication
wisewand login # ou seulement la clé, rangée dans ~/.wisewand/config.json
wisewand whoami # quelle source a répondu
wisewand logoutDeux précisions valent d'être écrites. setup demande confirmation avant d'écrire quoi que ce soit, il ne modifie rien dans votre dos. Et whoami est d'abord une commande de diagnostic : quand plusieurs sources de clé coexistent, c'est elle qui dit laquelle a été retenue.
La forme générale : ressource, puis verbe
Les 14 groupes de ressources du CLI sont exactement les 14 familles d'outils du serveur, plus quelques méta-commandes. Ils ne sont pas écrits en dur dans le binaire : ils sont générés depuis le registre, ce qui est la raison mécanique pour laquelle les deux portes ne peuvent pas diverger.
| Commande | Ce qu'elle fait |
|---|---|
login, logout, whoami, setup | La session et la clé |
tools, call | Les méta-commandes : explorer le registre, invoquer un outil par son nom |
articles, discover, update-posts, category-pages, product-pages | Les cinq familles de contenu |
projects, personas, autopilot | Le cadre : brief, voix, production continue |
publish, connections, feeds | La sortie : plateformes, connexions, flux |
jobs, transactions, account | La surveillance : tâches, crédits, compte |
L'échappatoire universelle : wisewand call
Chaque outil reste joignable par son nom MCP, quel que soit le verbe CLI qui l'expose :
wisewand call create_article --input brief.json
cat brief.json | wisewand call create_article --input -C'est l'interface stable pour un script : les noms d'outils ne bougent pas, donc un script qui passe par call survit à un changement de verbe.
Explorer le registre sans documentation
Deux commandes suffisent à répondre à « quels outils existent » et « quels paramètres accepte celui-ci ». Aucune des deux ne consomme de crédit, et tools n'a même pas besoin d'une clé : elle lit le registre embarqué dans le paquet.
wisewand tools --search discover
wisewand tools describe create_articleVoici la vraie sortie de la première commande, tronquée à ses quatre premières entrées. Notez qu'elle est en JSON : la sortie est passée dans un tube, donc le CLI a basculé tout seul.
[
{
"name": "discover_content",
"command": "discover create",
"description": "Create a Google Discover article, written for the Discover feed rather than for search. Only `subject` is required."
},
{
"name": "run_discovery",
"command": "discover run",
"description": "Generate the content of an existing discover article."
},
{
"name": "get_discover_result",
"command": "discover get",
"description": "Get a discover article's details and status."
},
{
"name": "list_discover_articles",
"command": "discover list",
"description": "List and search discover articles."
},
...
]Le problème des 95 propriétés
create_article accepte 95 propriétés, et une seule est obligatoire : subject. Tout le reste hérite du brief du projet quand vous l'omettez. L'aide en ligne, elle, n'en affiche qu'une petite partie, et cache le reste, qui fonctionne pourtant. Elle le dit explicitement en dernière ligne :
84 more options are available. Run
wisewand tools describe create_articlefor the full schema, or pass a complete payload with--input <file>.
Pour quoi que ce soit de substantiel, la bonne réponse est donc un fichier :
wisewand articles create --input brief.json --lang frUne règle à connaître : les drapeaux explicites l'emportent sur le fichier. Ci-dessus, --lang fr écrase la langue déclarée dans brief.json. C'est ce qui permet de garder un seul brief et de le décliner par marché.
Les sept codes de sortie
C'est ce qui rend une tâche planifiée réellement scriptable : votre script décide sur un entier, jamais en analysant un message d'erreur.
| Code | Signification | Ce qu'un script en fait |
|---|---|---|
0 | Succès | Continuer |
1 | Échec générique | Alerter |
2 | Erreur d'usage | Corriger la commande, ne jamais réessayer |
3 | Authentification (401 ou 403) | Clé absente, expirée ou révoquée |
4 | Non trouvé (404) | L'identifiant n'existe pas ou plus |
5 | Quota dépassé (429) | Attendre, puis réessayer |
130 | Interruption | Arrêt demandé par l'utilisateur |
Attendre, ou rendre la main
Par défaut, generate attend la fin de la génération. Deux drapeaux changent ce comportement, et ils correspondent à deux usages différents.
--no-wait rend la main tout de suite. La génération continue côté serveur, et une seconde commande viendra chercher le résultat plus tard.
--max-wait borne l'attente. Au-delà, la commande rend la main plutôt que d'immobiliser un agent d'intégration continue.
Votre premier article : une vraie conversation
Créer un article avec Wisewand demande trois messages : demander l'article, demander la génération, demander le contenu. Comptez environ 1 seconde pour la création et 30 à 180 secondes pour la génération, selon la longueur et le nombre d'images.
Voici à quoi ressemble l'échange, côté conversation.
Vous : « Crée un article SEO sur les meilleurs outils IA pour la création de contenu. »
Le LLM : utilise
create_article. Article créé, identifiantabc-123. Mot-clé cible, section FAQ, sommaire et image principale sont réglés depuis le brief du projet.Vous : « Montre-moi le contenu quand c'est prêt. »
Le LLM : utilise
get_articlepuisget_article_output. Terminé. Voici le titre, la description et le corps de l'article.
La même chose, en une seule commande, sans LLM :
wisewand articles write "Les meilleurs outils IA pour la création de contenu" --project <id-du-projet>articles write est le seul enchaînement composé du CLI : il crée, génère et imprime le résultat, les trois étapes en une.
Le fait le plus contre-intuitif du produit
Créer un article lance déjà sa génération. Il n'y a rien à déclencher ensuite. L'aide de la commande le dit elle-même, sans ambiguïté :
Creating queues the generation, and that costs credits. The entity goes
prequeuedtoqueuedtorunningtosuccesson its own; nothing has to callgenerate_article.
Un lecteur qui l'ignore appelle generate_article en croyant démarrer, alors qu'il relance. Le bon réflexe est donc l'inverse de l'intuition : après create, on interroge, on ne redéclenche pas.
Le corollaire est utile à connaître avant de facturer une erreur : pour chiffrer sans lancer, il existe estimate_article_cost, qui prend exactement le même corps de requête et ne consomme rien.
Le flux de travail parfait en 7 étapes
L'installation vous donne les outils. Ce qui suit vous donne un système : un persona qui tient la voix, un projet qui tient le brief, une connexion qui tient la publication. Une fois posé, un article ne demande plus qu'une phrase.
Étape 1 : télécharger et installer
C'est l'étape 2 de la section précédente, rien de plus. Une fois le serveur déclaré, redémarrez votre client pour qu'il le charge.
Étape 2 : vérifier la clé API
Demandez la liste des outils : vous devez en voir 89. Depuis un terminal, wisewand whoami répond à la même question et vous dit en plus quelle clé a été retenue, ce qui est la moitié du diagnostic quand plusieurs sources coexistent.
Étape 3 : configurer la connexion au site web
Pour publier sur WordPress, créez un mot de passe d'application depuis votre profil WordPress, jamais votre mot de passe principal. Il se révoque indépendamment, ce qui vous permet de couper l'accès de Wisewand sans toucher à votre compte.
- Dans WordPress : Utilisateurs, puis Profil, puis la section Mots de passe d'application.
- Nommez-le clairement, par exemple
Wisewand, et copiez-le tout de suite : il ne s'affiche qu'une fois. - Créez ensuite la connexion avec
create_connection, ouwisewand connections create.
WordPress reste optionnel. Wisewand produit du contenu que vous pouvez récupérer et publier où vous voulez ; la connexion ne fait qu'éliminer l'étape de copie.
Étape 4 : créer votre persona
Un persona, c'est deux choses : le style, c'est-à-dire comment ça écrit, et le resume, c'est-à-dire qui écrit. C'est ce qui empêche vingt articles générés le même jour de se ressembler tous.
Créez-en autant que vous avez de registres, testez-en un sur un seul article avant de lancer une série, puis réutilisez-le.
Étape 5 : créer un projet et configurer le brief
Un projet porte le brief dont chaque génération hérite : la langue, le pays, le persona par défaut, la connexion de publication. C'est la pièce qui fait le plus de travail dans le système.
Conséquence directe, et c'est une bonne nouvelle : plus votre brief est complet, plus vos commandes sont courtes. Sur les 95 propriétés de create_article, seul subject est obligatoire, tout le reste tombe du projet.
Une valeur explicite écrase le brief du projet. Ne rien passer, c'est donc laisser le brief décider, ce qui est presque toujours ce que vous voulez. La description des paramètres le dit d'ailleurs à chaque ligne : « omettez pour laisser le brief du projet décider ».
Étape 6 (optionnel) : connecter Haloscan MCP
Un second serveur MCP se déclare exactement comme le premier, et votre LLM les combine sans que vous ayez à les coordonner. Haloscan couvre la recherche de mots-clés et l'analyse de la concurrence, là où Wisewand couvre la production et la publication.
claude mcp add haloscan -e HALOSCAN_API_KEY=VOTRE_CLE -- npx -y @occirank/haloscan-server@latest startL'enchaînement devient : demander quels mots-clés cibler, choisir, puis demander l'article sur celui qui a été retenu. Deux serveurs, une conversation.
Étape 6b (optionnel) : connecter Google Search Console MCP
Le troisième angle, c'est vos propres données : clics, impressions, position moyenne, état d'indexation. Haloscan dit ce que le marché cherche, Search Console dit ce que votre site obtient déjà, Wisewand produit.
Ce serveur demande une configuration OAuth Google, donc son installation est plus longue que les deux autres. Elle en vaut la peine à partir du moment où vous avez assez de pages pour que la question « laquelle rafraîchir en premier » se pose.
Étape 7 : créez votre article parfait
Une fois les six étapes précédentes en place, l'article tient en une phrase, parce que tout le contexte vit déjà dans le projet et le persona.
wisewand articles write "Comment choisir sa cafetière à grains" --project <id>
wisewand publish wordpress --id <id-article>Et si vous préférez relire avant de publier, insérez wisewand articles output --id <id> --markdown entre les deux. C'est d'ailleurs ce que nous recommandons : générer, relire, publier.
La boîte à outils complète : 89 outils expliqués
Wisewand expose 89 outils répartis en 14 familles. Cinq familles de contenu partagent exactement le même jeu de 10 verbes, ce qui représente 50 des 89 outils : quand vous en connaissez une, vous les connaissez toutes les cinq.
Le motif qui vous évite de tout lire
Cinq familles (articles, discover, update-posts, category-pages, product-pages) portent exactement les mêmes dix verbes. Apprenez-les une fois, vous les avez toutes.
Articles
Écrire, générer et exporter des articles. create_article ne demande que subject : tout le reste hérite du projet.
| Outil MCP | Commande CLI |
|---|---|
create_article | wisewand articles create |
generate_article | wisewand articles generate |
get_article | wisewand articles get |
list_articles | wisewand articles list |
update_article | wisewand articles update |
get_article_output | wisewand articles output |
update_article_output | wisewand articles update-output |
estimate_article_cost | wisewand articles estimate |
bulk_create_articles | wisewand articles bulk-create |
bulk_estimate_cost | wisewand articles bulk-estimate |
bulk_estimate_cost mérite d'être connue : c'est la façon de chiffrer 50 créations sans en lancer une seule.
Projets
Un projet porte le brief dont chaque génération hérite, la connexion de publication et les valeurs par défaut. C'est aussi là que la production continue se déclenche, en passant autopilot à vrai sur le projet.
| Outil MCP | Commande CLI |
|---|---|
create_project | wisewand projects create |
get_project | wisewand projects get |
list_projects | wisewand projects list |
update_project | wisewand projects update |
delete_project | wisewand projects delete |
Autopilot
La production de contenu en continu. Une seule lecture, parce que le réglage se fait sur le projet et pas ici.
| Outil MCP | Commande CLI |
|---|---|
get_autopilot_status | wisewand autopilot status |
Personas
La voix. Un persona est un style, la façon d'écrire, plus un resume, la personne qui écrit.
| Outil MCP | Commande CLI |
|---|---|
create_persona | wisewand personas create |
get_persona | wisewand personas get |
list_personas | wisewand personas list |
update_persona | wisewand personas update |
delete_persona | wisewand personas delete |
Découverte de contenu
Des contenus écrits pour le fil Google Discover plutôt que pour la recherche, et des brouillons partant de l'analyse des résultats. C'est la famille dont le verbe de génération s'appelle run.
| Outil MCP | Commande CLI |
|---|---|
discover_content | wisewand discover create |
run_discovery | wisewand discover run |
get_discover_result | wisewand discover get |
list_discover_articles | wisewand discover list |
update_discover_article | wisewand discover update |
get_discover_output | wisewand discover output |
update_discover_output | wisewand discover update-output |
estimate_discover_cost | wisewand discover estimate |
bulk_create_discover_articles | wisewand discover bulk-create |
bulk_estimate_discover_cost | wisewand discover bulk-estimate |
Mise à jour des articles
Reprendre un contenu déjà publié, sans changer son URL. Même jeu de dix verbes que les articles.
| Outil MCP | Commande CLI |
|---|---|
create_update_post | wisewand update-posts create |
generate_update_post | wisewand update-posts generate |
get_update_post | wisewand update-posts get |
list_update_posts | wisewand update-posts list |
update_update_post | wisewand update-posts update |
get_update_post_output | wisewand update-posts output |
update_update_post_output | wisewand update-posts update-output |
estimate_update_post_cost | wisewand update-posts estimate |
bulk_create_update_posts | wisewand update-posts bulk-create |
bulk_estimate_update_post_cost | wisewand update-posts bulk-estimate |
Pages catégorie
Les pages de collection d'un site e-commerce, celles qui captent les requêtes larges.
| Outil MCP | Commande CLI |
|---|---|
create_category_page | wisewand category-pages create |
generate_category_page | wisewand category-pages generate |
get_category_page | wisewand category-pages get |
list_category_pages | wisewand category-pages list |
update_category_page | wisewand category-pages update |
get_category_page_output | wisewand category-pages output |
update_category_page_output | wisewand category-pages update-output |
estimate_category_page_cost | wisewand category-pages estimate |
bulk_create_category_pages | wisewand category-pages bulk-create |
bulk_estimate_category_page_cost | wisewand category-pages bulk-estimate |
Pages produit
Les fiches, avec comparatifs, arguments et liens d'affiliation.
| Outil MCP | Commande CLI |
|---|---|
create_product_page | wisewand product-pages create |
generate_product_page | wisewand product-pages generate |
get_product_page | wisewand product-pages get |
list_product_pages | wisewand product-pages list |
update_product_page | wisewand product-pages update |
get_product_page_output | wisewand product-pages output |
update_product_page_output | wisewand product-pages update-output |
estimate_product_page_cost | wisewand product-pages estimate |
bulk_create_product_pages | wisewand product-pages bulk-create |
bulk_estimate_product_page_cost | wisewand product-pages bulk-estimate |
Publication
Quatre plateformes, un webhook générique, et une lecture qui vaut de l'or quand quelque chose ne s'affiche pas.
| Outil MCP | Commande CLI |
|---|---|
publish_to_wordpress | wisewand publish wordpress |
publish_to_shopify | wisewand publish shopify |
publish_to_prestashop | wisewand publish prestashop |
publish_to_woocommerce | wisewand publish woocommerce |
trigger_webhook | wisewand publish webhook |
get_publish_errors | wisewand publish errors |
get_publish_errors répond à la question « le contenu a été généré, mais il n'est jamais apparu sur le site ». C'est le premier endroit où regarder.
Connexions
Les identifiants de vos plateformes, plus trois outils propres à Shopify.
| Outil MCP | Commande CLI |
|---|---|
list_connections | wisewand connections list |
get_connection | wisewand connections get |
create_connection | wisewand connections create |
update_connection | wisewand connections update |
delete_connection | wisewand connections delete |
get_shopify_blogs | wisewand connections shopify-blogs |
get_shopify_internal_link_targets | wisewand connections shopify-link-targets |
update_shopify_connection | wisewand connections shopify-update |
get_shopify_internal_link_targets trouve, dans une boutique Shopify, les produits, collections et articles pertinents pour un sujet donné. C'est ce qui permet à un contenu neuf de pointer vers votre catalogue existant au lieu de vivre isolé.
Flux RSS
La gestion des flux, pour alimenter la production depuis une source extérieure.
| Outil MCP | Commande CLI |
|---|---|
create_feed | wisewand feeds create |
get_feed | wisewand feeds get |
list_feeds | wisewand feeds list |
update_feed | wisewand feeds update |
delete_feed | wisewand feeds delete |
Tâches de fond
Inspecter et relancer une tâche. Utile quand une génération longue mérite d'être surveillée depuis l'extérieur.
| Outil MCP | Commande CLI |
|---|---|
get_job | wisewand jobs get |
trigger_job | wisewand jobs trigger |
Crédits et facturation
L'historique de consommation, au global et au jour le jour.
| Outil MCP | Commande CLI |
|---|---|
list_transactions | wisewand transactions list |
get_daily_transactions | wisewand transactions daily |
Compte
Les référentiels de votre compte : auteurs, catégories, et le résumé de consommation.
| Outil MCP | Commande CLI |
|---|---|
get_authors | wisewand account authors |
get_author | wisewand account author |
get_categories | wisewand account categories |
get_category | wisewand account category |
get_usage_summary | wisewand account usage |
Les pièges : ce que l'API fait, et pas ce qu'on croit
Sept comportements de l'API Wisewand surprennent régulièrement. Les trois plus coûteux : une écriture qui échoue n'est jamais rejouée automatiquement, créer une entité lance déjà sa génération, et on ne peut pas modifier une entité pendant sa première minute d'existence.
| Ce qu'on croit | Ce qui se passe |
|---|---|
Le Royaume-Uni est gb | C'est uk. Langue et pays sont les codes Google hl et gl, pas des codes ISO. Il n'y a pas non plus de pt tout court : pt-PT ou pt-BR. |
| Publier met en brouillon | Shopify publie en ligne par défaut, WordPress met en brouillon. Deux plateformes, deux valeurs par défaut opposées. |
| Passer une option ne coûte rien | Une valeur explicite écrase le brief du projet. Omettre une option est donc un choix : c'est ce qui laisse le brief décider. |
| Le quota d'un projet se règle au premier niveau | Il vit dans feeds_config. La spécification le déclare aussi ailleurs, mais le serveur ne l'y accepte pas. |
| On peut corriger tout de suite ce qu'on vient de créer | Pas pendant la première minute : la requête est refusée avec un message qui dit que l'entité a moins d'une minute. Attendez, puis modifiez. |
content, faq et h1 sont du texte | C'est du HTML, même si le type déclaré est une chaîne. Pour du texte, lisez avec format: "markdown". |
| Les statuts sont ceux de l'énumération | Une entité fraîchement créée rend prequeued, une valeur absente de l'énumération. Elle passe à queued en quelques secondes. |
Les retries : une lecture se rejoue, une écriture non
C'est le comportement le plus important du produit pour qui automatise, et il tient en une phrase : une lecture se rejoue, une écriture non. Une seule exception, le dépassement de quota.
Le raisonnement est celui-là, et il est solide. Un dépassement de quota est le seul échec qui vous dit ce que le serveur a fait, à savoir rien : le rejouer est sans risque. Une erreur 500, un délai dépassé et une connexion coupée sont, du point de vue du client, indiscernables : l'écriture a pu aboutir entièrement avant que la réponse se perde.
Cette règle vient d'un incident réel. Avant la version 3.1.0, toutes les méthodes étaient rejouées trois fois, et un seul appel de publication a produit quatre requêtes vers le site WordPress d'un utilisateur, espacées de 2, 4 et 6 secondes. Transposé à une création d'article, un délai dépassé pouvait créer quatre articles et facturer quatre fois.
À la place, le client émet une erreur qui nomme la lecture qui tranche :
This POST was not retried: the API may have carried it out before the failure, so sending it again could do the work twice. Check with
list_articlesbefore retrying.
Et il n'existe aucun réglage pour réactiver le côté écriture. Les variables de réglage des retries ne gouvernent que les lectures.
Il n'existe pas de clé d'idempotence. La sûreté repose entièrement sur « on ne rejoue pas une écriture, et on vous nomme la lecture qui tranche ». C'est un choix de conception défendable, ce n'est pas une garantie : dans un script, la vérification par une lecture reste votre responsabilité.
Le polling : pourquoi un délai de 60 secondes ne limite pas une génération de 3 minutes
Un appel de génération n'ouvre pas une requête longue. Il démarre la génération, puis interroge le statut toutes les 5 secondes jusqu'à la fin ou jusqu'au délai maximum que vous avez fixé.
La conséquence n'est pas évidente : le délai d'expiration d'une requête, réglé à 60 secondes par défaut, ne borne pas une génération de trois minutes, parce que cette génération est faite de N requêtes courtes et non d'une longue. L'augmenter ne sert que si une requête unitaire dépasse la minute, ce qui est rare : ce défaut de 60 secondes vaut trente fois la réponse la plus lente jamais mesurée sur l'API.
Le format de réponse : il n'y a pas d'enveloppe
Chaque outil rend un bloc de texte contenant du JSON. Il n'y a pas d'enveloppe commune, et en particulier pas de clé data à déballer. Une liste rend items, count et total. Une erreur porte error, message et hint.
Trois pièges de plus, plus discrets mais qui coûtent du temps.
- Le Markdown est un aller sans retour. L'API stocke du HTML, et
format: "markdown"convertit à la lecture. Mais l'outil de mise à jour du contenu, lui, écrit du HTML. C'est un format de lecture, pas un format d'échange. - Les lectures d'entité sont minimales.
get_article,get_category_pageetget_product_pagerendent typiquement un identifiant et un statut. Le contenu se lit par l'outil de sortie correspondant. - Le débit est un compteur global, pas un compteur par client. Et il y a un client par processus, parce que le transport MCP est un tube. Deux sessions ouvertes partagent donc les mêmes 60 requêtes par minute.
Comment le paquet se vérifie lui-même
Un détail d'ingénierie qui explique pourquoi les descriptions d'outils sont fiables : les schémas ne sont pas écrits à la main, ils sont générés depuis la spécification OpenAPI. Celle-ci porte 83 langues, 239 pays, 99 propriétés de contenu et 88 opérations.
La raison est instructive. L'API déclare additionalProperties: true, donc un champ envoyé sous un nom qu'elle ne connaît pas est accepté puis jeté. Un appel a un jour envoyé six noms de champs inexistants, reçu un HTTP 200, créé un projet vide et rapporté un succès. Ni le typage, ni l'API, ni les tests n'ont rien dit.
D'où une procédure de vérification qui appelle les 88 opérations contre l'API réelle, avec de vraies clés et de vrais crédits, et relit chaque écriture pour distinguer « stocké » de « avalé ». La dernière passe donne 81 opérations vérifiées, 1 échec et 6 non vérifiables faute d'une boutique de test sur les plateformes concernées.
Cas d'utilisation réels
Quatre enchaînements complets, chacun exprimé dans les deux portes : la phrase que vous diriez à un LLM, et la commande que vous mettriez dans un script.
a) Série de blog SEO
Objectif : produire une série d'articles liés entre eux sur un même thème, avec un maillage interne cohérent.
La création groupée existe précisément pour ça, et son estimation groupée permet de connaître le coût total avant de lancer quoi que ce soit.
wisewand articles bulk-estimate --input serie.json # le devis
wisewand articles bulk-create --input serie.json # la commandeLe fichier serie.json porte la liste des sujets ; tout le reste, langue, persona, longueur, FAQ, sommaire, vient du brief du projet.
b) Site d'avis produits
Objectif : des fiches et des comparatifs avec liens d'affiliation, sur un catalogue qui bouge.
C'est le terrain des pages produit et des pages catégorie. Le schéma prévoit explicitement les deux formes d'affiliation : l'avis d'un seul produit, et le comparatif de deux produits, chacun avec ses liens et ses URL d'avis de référence.
Sur une boutique Shopify, ajoutez get_shopify_internal_link_targets : elle trouve les produits et collections pertinents pour le sujet, ce qui permet à la fiche de pointer vers votre catalogue plutôt que de rester isolée.
c) Expansion multi-langue
Objectif : le même sujet, décliné pour plusieurs marchés, avec un référencement adapté à chacun.
Un seul brief, un seul fichier, et le marché passe en drapeau. Souvenez-vous que le drapeau explicite l'emporte sur le fichier : c'est exactement ce qui rend cette boucle possible.
for marche in "fr:fr" "en:us" "es:es"; do
wisewand articles create --input brief.json \
--lang "${marche%%:*}" --country "${marche##*:}"
doneAttention au code du Royaume-Uni : c'est uk, jamais gb.
e) Campagne de rafraîchissement de contenu
Objectif : reprendre des articles anciens sans changer leurs URL.
C'est la famille update-posts, et c'est sans doute le meilleur rapport entre l'effort et le résultat quand vous avez déjà un stock de pages. Un article qui a de l'ancienneté et des liens entrants part de plus haut qu'une page neuve.
Le bon ordre : lister ce qui existe, choisir sur des données réelles plutôt qu'à l'intuition, estimer, puis lancer. Un serveur MCP Search Console branché à côté transforme le « choisir » en décision documentée.
Conseils avancés et meilleures pratiques
Optimisation SEO
Mettez le maximum dans le brief du projet, le minimum dans la commande. C'est le conseil qui a le plus d'effet sur la durée : un brief complet rend vos commandes courtes, reproductibles et cohérentes entre elles. Le schéma est conçu pour ça, puisque subject est le seul champ obligatoire sur 95.
Activez la FAQ et le sommaire sur les formats longs. Ils structurent la page en passages autonomes, ce qui est utile aux lecteurs et lisible par les moteurs de réponse.
Ne visez pas une seule requête. Les mots-clés secondaires existent dans le schéma ; les renseigner élargit la couverture d'un même article sans en écrire un second. Si vous voulez creuser le sujet de la visibilité dans les réponses générées, nous lui avons consacré une page dédiée au SEO et au GEO.
Stratégie de publication
Générez, relisez, publiez. Dans cet ordre, et avec un humain à l'étape du milieu. Le CLI rend cette discipline facile : articles output --markdown vous donne un texte lisible en une commande.
Vérifiez la valeur par défaut de votre plateforme. Shopify publie en ligne, WordPress met en brouillon. Si vous voulez la même chose partout, passez le statut explicitement au lieu de vous fier au défaut.
Traitez les codes de sortie. Dans un cron, un code 5 veut dire « réessaie plus tard » et un code 3 veut dire « ta clé est morte, préviens quelqu'un ». Ce ne sont pas les mêmes conséquences, et les distinguer coûte deux lignes de script.
Génération d'images
Les images se règlent dans le brief comme le reste. Deux réflexes utiles.
Choisissez le ratio selon la destination, pas par défaut : 16:9 pour une image à la une, 1:1 pour les réseaux, 9:16 pour les formats verticaux.
Chiffrez avant de lancer en série. Les images comptent dans le coût, et l'outil d'estimation prend exactement les mêmes paramètres que la création. Sur une commande groupée, le devis se fait en une commande et ne coûte rien.
Foire aux questions
Ai-je besoin de Claude Desktop ou de Claude Code CLI ?
Non. N'importe quel client MCP convient, et les fonctionnalités sont identiques puisqu'elles viennent du même serveur : Claude Code, Claude Desktop, Cursor, VS Code et Windsurf sont tous prévus. Vous pouvez même vous passer complètement de client MCP en utilisant la commande wisewand, qui expose les mêmes 89 outils depuis un terminal.
Puis-je l'utiliser sans LLM du tout ?
Oui, et c'est même souvent le meilleur choix. La commande wisewand est livrée dans le même paquet npm que le serveur MCP et donne accès aux mêmes 89 outils, sans client MCP et sans modèle. C'est la porte à utiliser pour une tâche planifiée, un script de déploiement ou une chaîne d'intégration continue, où la sortie doit être déterministe et le code de retour interprétable par une machine.
Que se passe-t-il si un appel échoue ?
Cela dépend de ce que faisait l'appel. Une lecture est rejouée automatiquement, sur les quatre familles d'échec. Une écriture n'est rejouée que sur un dépassement de quota, jamais sur une erreur serveur, un délai dépassé ou une connexion coupée, parce que dans ces trois cas le client ne peut pas savoir si l'écriture a abouti avant que la réponse se perde. Le message d'erreur vous nomme alors la lecture à faire pour trancher. Il n'existe pas de clé d'idempotence : la vérification reste à votre charge.
Que faire si j'obtiens l'erreur « Cannot connect to Wisewand API » ?
Vérifiez d'abord le format de la clé, qui doit commencer par sk_live_ ou sk_test_, et qu'elle a été copiée en entier. Souvenez-vous que le serveur ne valide que la forme au démarrage : une clé bien formée mais révoquée ne se manifeste qu'au premier appel, par une erreur 401. Depuis un terminal, wisewand whoami vous dit quelle source a fourni la clé retenue, ce qui règle la plupart des cas où plusieurs sources coexistent.
Puis-je utiliser cet outil sans WordPress ?
Oui. La publication directe couvre WordPress, Shopify, WooCommerce et PrestaShop, plus un webhook générique pour tout le reste, mais rien ne vous oblige à l'utiliser. Vous pouvez récupérer le contenu généré avec l'outil de sortie, en HTML ou en Markdown, et le publier où vous voulez. La connexion ne fait qu'éliminer l'étape de copie.
Combien de temps prend la génération d'un article ?
La création est quasi instantanée, environ une seconde, et la génération prend 30 à 180 secondes selon la longueur et le nombre d'images. Attention au point contre-intuitif : la création met déjà la génération en file d'attente, il n'y a rien à déclencher ensuite. L'entité passe seule de prequeued à queued, puis running, puis success, pendant que le client l'interroge toutes les cinq secondes.
Puis-je personnaliser le style rédactionnel ?
Oui, c'est le rôle des personas. Un persona combine un style, qui décrit la façon d'écrire, et un resume, qui décrit qui écrit. Vous pouvez en créer autant que vous avez de registres et désigner celui par défaut au niveau du projet. Le bon réflexe est d'en tester un sur un seul article avant de lancer une série.
Quelles langues sont prises en charge ?
Le schéma de l'outil accepte 83 codes de langue et 239 codes de pays. Ce sont les paramètres hl et gl de Google, pas des codes ISO, ce qui explique deux surprises fréquentes : le Royaume-Uni s'écrit uk et non gb, et le portugais n'existe pas sous la forme pt, il faut pt-PT ou pt-BR. Langue et pays se règlent au niveau du projet et se surchargent article par article.
Quel est le coût par article ?
Comptez de l'ordre de 10 à 20 crédits pour un billet de 1000 mots, plus 5 à 10 avec des images et 2 à 5 avec des publications sociales. Ce sont des ordres de grandeur : le chiffre exact se connaît à l'avance avec l'outil d'estimation, qui prend exactement les mêmes paramètres que la création et ne consomme rien. Pour une commande groupée, l'estimation groupée chiffre la totalité avant que rien ne soit lancé.
Puis-je suivre mon utilisation ?
Oui, par trois outils complémentaires : get_usage_summary pour la vue d'ensemble, list_transactions pour l'historique détaillé et get_daily_transactions pour la consommation au jour le jour. Depuis un terminal, ce sont respectivement wisewand account usage, wisewand transactions list et wisewand transactions daily.
Puis-je connecter plusieurs sites WordPress ?
Oui. Créez une connexion par site, avec ses propres identifiants et un nom explicite, puis rattachez la connexion au projet correspondant. C'est ce qui permet à une agence de séparer proprement le travail de plusieurs clients, chacun avec son brief, son persona et sa destination de publication.
Est-ce compatible avec Shopify et WooCommerce ?
Oui, les deux ont leur outil de publication dédié, au même titre que PrestaShop. Shopify a en plus trois outils spécifiques : lister les blogs de la boutique, mettre à jour la connexion, et trouver les produits, collections et articles pertinents pour un sujet donné. Une différence à connaître : sur Shopify le statut par défaut publie en ligne, alors que sur WordPress il met en brouillon.
Puis-je mettre à jour du contenu existant ?
Oui, c'est le rôle de la famille update-posts, qui porte les mêmes dix verbes que les articles. Elle est faite pour reprendre un contenu déjà publié sans changer son URL, ce qui préserve l'ancienneté de la page et les liens qui pointent vers elle. Sur un site qui a déjà du stock, c'est souvent le meilleur rapport entre l'effort et le résultat.
Quelle est la différence entre Wisewand et Haloscan MCP ?
Ce sont deux serveurs MCP complémentaires, pas concurrents. Haloscan couvre la recherche : mots-clés, volumes, analyse des résultats de recherche et de la concurrence. Wisewand couvre la production et la publication. Déclarés côte à côte dans le même client, votre LLM les enchaîne sans que vous ayez à les coordonner : chercher, choisir, écrire, publier.
Puis-je générer 100 articles en masse ?
Oui, la création groupée est prévue pour ça, et l'estimation groupée existe précisément pour chiffrer une série de 50 créations sans en lancer une seule. Deux points de vigilance : le débit est limité à 60 requêtes par minute sur un compteur global, et les crédits sont consommés à la création puisque celle-ci met déjà la génération en file d'attente. Chiffrez d'abord, lancez ensuite.
Le contenu est-il unique et optimisé pour le SEO ?
Chaque contenu est généré pour votre demande, à partir de votre brief et de votre persona, et n'est pas assemblé depuis un gabarit. La structure produite est celle qu'attend un moteur : hiérarchie de titres, section FAQ, sommaire, métadonnées, maillage interne. Aucun outil ne peut promettre une position dans Google, et nous ne le promettons pas : ce que Wisewand vous donne, c'est un contenu correctement structuré, produit à un coût qui rend la régularité possible.
Puis-je ajouter mes propres recherches ou sources dans les articles ?
Oui. Le champ prévu pour ça accepte du contexte libre, et le champ de sujet lui-même accepte des URL sources. En conversation, il suffit de les mentionner. Depuis un terminal, passez-les dans le fichier de charge utile avec --input. Vous pouvez aussi modifier le contenu généré après coup avec l'outil de mise à jour de sortie, en gardant à l'esprit qu'il attend du HTML.
Commencez
Récupérez votre clé sur app.wisewand.ai/api, installez le paquet, et faites votre premier appel. Trois lignes, et vous avez les deux portes en même temps : le serveur pour votre LLM, la commande pour vos scripts.
npm install -g @wisewandtools/mcp-server
wisewand login
claude mcp add wisewand -- npx -y @wisewandtools/mcp-serverUne question, un retour, un cas qui ne rentre pas dans les cases : support@wisewand.ai.
Documentation API
- Pour un humain : api.wisewand.ai/docs
- Pour une machine, la spécification OpenAPI : api.wisewand.ai/docs/json
Configuration complète mcp.json
Le fichier ci-dessous fonctionne tel quel pour Claude Desktop, Cursor, VS Code et Windsurf. Remplacez les clés, et rappelez-vous que ce fichier ne doit jamais entrer dans un dépôt.
{
"mcpServers": {
"wisewand": {
"command": "npx",
"args": ["-y", "@wisewandtools/mcp-server"],
"env": {
"WISEWAND_API_KEY": "sk_live_VOTRE_CLE"
}
},
"haloscan": {
"command": "npx",
"args": ["-y", "@occirank/haloscan-server@latest", "start"],
"env": {
"HALOSCAN_API_KEY": "VOTRE_CLE_HALOSCAN"
}
}
}
}Cet article existe aussi en anglais : read it in English