Utiliser Inkitt MCP depuis votre CLI de codage
Ce guide vous montre comment connecter le serveur MCP d'Inkitt aux trois principaux CLI de codage — Claude Code, Codex CLI et Gemini CLI — en utilisant un jeton d'accès personnel (PAT) que vous pouvez créer depuis votre onglet Paramètres > Serveur MCP.
Si vous utilisez Claude.ai, ChatGPT.com ou Gemini sur le web, ce guide ne s'applique pas — ces clients utilisent uniquement OAuth pour l'installation, ce qui n'est pas pris en charge actuellement.
Avant de commencer
Vous aurez besoin de :
- Un jeton d'accès personnel Inkitt (PAT). Générez-en un ici.
- L'URL du serveur MCP Inkitt :
https://mcp-server.inkitt.com/mcp - Node.js 18+ si vous ne l'avez pas déjà.
Nous recommandons de stocker votre PAT dans une variable d'environnement plutôt que de le coller dans des fichiers de configuration ou l'historique du shell. Les exemples ci-dessous utilisent systématiquement INKITT_PAT — définissez-la une fois dans votre shell :
export INKITT_PAT="votre-pat-ici"
Pour la persistance, ajoutez cette exportation dans ~/.zshrc, ~/.bashrc ou votre gestionnaire de secrets préféré (1Password CLI, direnv, etc.). Ne commettez jamais un PAT en clair dans le contrôle de version.
CLIs pris en charge :
- Claude Code
- Codex CLI
- Gemini CLI
Claude Code
Claude Code stocke la config MCP soit dans les paramètres utilisateur, soit dans un fichier .mcp.json au niveau du projet que vous pouvez partager avec votre équipe.
Ajout rapide (portée utilisateur, juste pour vous, tous projets) :
claude mcp add --transport http --scope user inkitt \
https://mcp-server.inkitt.com/mcp \
--header "Authorization: Bearer ${INKITT_PAT}"Portée projet (.mcp.json à la racine du projet, partageable via git) :
{
"mcpServers": {
"inkitt": {
"type": "http",
"url": "https://mcp-server.inkitt.com/mcp",
"headers": {
"Authorization": "Bearer ${INKITT_PAT}"
}
}
}
}Claude Code développe ${VAR} depuis votre environnement au moment de la connexion, donc ce fichier est sûr à commettre tant que INKITT_PAT reste en dehors du dépôt.
Vérification :
claude mcp list # Dans une session Claude Code: /mcp
Vous devriez voir inkitt listé avec ses outils.
Codex CLI
Codex stocke la config MCP en TOML dans ~/.codex/config.toml (portée utilisateur) ou .codex/config.toml dans un répertoire de projet de confiance. Le CLI et l'extension IDE partagent cette config.
Ajout rapide :
codex mcp add inkitt \ --url https://mcp-server.inkitt.com/mcp \ --bearer-token-env-var INKITT_PAT
Le TOML généré :
[mcp_servers.inkitt] url = "https://mcp-server.inkitt.com/mcp" bearer_token_env_var = "INKITT_PAT"
Notez la différence de conception : Codex pointe vers un nom de variable d'environnement (INKITT_PAT), lit la valeur au moment de la connexion, et ne stocke jamais le jeton en clair dans la config. Il n'y a pas d'équivalent à coller Authorization: Bearer xxx directement dans le fichier — c'est voulu.
Si vous avez besoin d'en-têtes statiques supplémentaires en plus du jeton bearer, ajoutez-les dans la même section :
[mcp_servers.inkitt]
url = "https://mcp-server.inkitt.com/mcp"
bearer_token_env_var = "INKITT_PAT"
http_headers = { "X-Inkitt-Client" = "codex" }Vérification :
codex mcp get inkitt # Dans une session Codex: /mcp
Gemini CLI
Gemini stocke la config MCP en JSON dans ~/.gemini/settings.json (portée utilisateur) ou .gemini/settings.json (portée projet, par défaut). Notez l'inversion par rapport à Claude Code, qui est local par défaut.
Ajout rapide (portée utilisateur) :
gemini mcp add --transport http -s user inkitt \
https://mcp-server.inkitt.com/mcp \
--header "Authorization: Bearer ${INKITT_PAT}"Le JSON généré :
{
"mcpServers": {
"inkitt": {
"httpUrl": "https://mcp-server.inkitt.com/mcp",
"headers": {
"Authorization": "Bearer ${INKITT_PAT}"
}
}
}
}Deux pièges sur les noms de champs à connaître :
- Le champ URL HTTP est
httpUrl, pasurl. (Gemini utiliseurlpour le transport SSE — différent de Claude Code et Codex qui utilisenturlpour les deux.) Copier un extrait JSON d'un doc Claude Code et modifier l'URL sur place échouera silencieusement. - Gemini masque automatiquement les variables d'environnement correspondant à
TOKEN*,SECRET*,KEY*,AUTH*,CREDENTIAL*de tout serveur MCP stdio qu'il lance. Cela n'affecte pas les en-têtes HTTP (votre expansion${INKITT_PAT}fonctionnera bien), mais si vous utilisez un pont stdio commemcp-remote, vous devrez lister explicitementINKITT_PATdans la propriétéenvdu serveur.
Vérification :
# Dans une session Gemini: /mcp
Comment utiliser le MCP après installation
Une fois le serveur connecté, vous pouvez parler à votre CLI en anglais simple — il déterminera quels outils Inkitt appeler. L'ensemble complet d'outils couvre la lecture, la rédaction, l'édition, l'organisation et la publication d'histoires et de chapitres. Voici des invites de départ regroupées selon ce que vous souhaitez faire.
Se familiariser (lecture seule — sûr de commencer ici) :
Quelles histoires ai-je sur Inkitt ?Montre-moi les détails et la liste des chapitres de "[titre de l'histoire]".Quelle est l'image de couverture actuelle de "[titre de l'histoire]" ?Quels types d'histoires, classifications d'âge et langues Inkitt supporte-t-il ?
Rédiger et créer :
Créer une nouvelle histoire brouillon sur Inkitt intitulée "Le Jardinier Sauvage" avec ce résumé : [collez le résumé]. Définir le genre en romance et la classification d'âge à 18+.Ajouter un nouveau chapitre à "[titre de l'histoire]" intitulé "Chapitre 1 : L'arrivée" avec ce contenu : [collez le brouillon, ou référencez un fichier local].Je vais coller mon brouillon de chapitre ci-dessous. Crée-le comme le chapitre suivant dans "[titre de l'histoire]" et garde-le comme brouillon, ne publie pas encore.
Éditer et affiner :
-
Affiche le chapitre 3 de "[titre de l'histoire]" et suggère des modifications de ligne pour le rythme dans la seconde moitié.(Lecture seule — votre CLI récupérera le chapitre et répondra avec des modifications en chat. Suivez avec "applique maintenant ces modifications" si vous voulez que le MCP les écrive.) Met à jour le résumé de "[titre de l'histoire]" à : [nouveau résumé].Lis tous les chapitres de "[titre de l'histoire]" et dis-moi où la chronologie devient confuse.
Gérer l'état de publication :
Quel est le statut de publication de chaque chapitre dans "[titre de l'histoire]" ?Publie le prochain chapitre non publié de "[titre de l'histoire]".Dépublie les chapitres 5 à 8 de "[titre de l'histoire]" — je dois faire une révision structurelle.Réorganise les chapitres de "[titre de l'histoire]" pour que le prologue vienne après le chapitre 2.
Modèles d'invites qui fonctionnent bien
- Référez-vous aux histoires par titre entre guillemets. Le CLI les résoudra via les outils liste/obtenir. Si vous avez plusieurs histoires aux titres similaires, incluez suffisamment de contexte pour désambiguïser, ou collez l'ID de l'histoire.
- Enchaînez les opérations dans une seule invite. "Crée un nouveau chapitre à partir de ce brouillon, puis montre-moi la liste complète des chapitres pour que je puisse confirmer que l'ordre est correct." Le CLI planifiera la séquence d'appels en plusieurs étapes et vous obtiendrez une réponse cohérente unique.
- Utilisez le MCP comme couche de lecture, pas seulement d'écriture. La plupart de la puissance vient du fait de tirer le contenu existant dans le CLI pour que le modèle puisse raisonner dessus — "compare la voix au chapitre 2 vs chapitre 8" est une bien meilleure invite que de demander au modèle de deviner de mémoire.
- Soyez explicite sur les opérations destructrices. Les outils de suppression et de dépublication totale existent ; les CLI demanderont confirmation, mais il vaut toujours la peine de dire "supprime seulement si je confirme" dans votre invite pour ralentir le processus.
- Restez en brouillon jusqu'à ce que ce soit voulu. Les nouveaux chapitres sont par défaut en statut brouillon. La publication est une étape séparée et explicite — utile lorsque vous voulez itérer avec le modèle sur plusieurs chapitres avant la mise en ligne.
Dépannage
Les outils n'apparaissent pas après avoir ajouté le serveur.
Exécutez la commande mcp list du CLI (ou en session /mcp) pour vérifier le statut de connexion. Les causes les plus courantes :
-
INKITT_PATn'est pas défini dans le shell qui a lancé le CLI. Exécutezecho $INKITT_PATpour confirmer. - Le PAT est expiré ou révoqué. Générez-en un nouveau depuis votre page de paramètres de jeton Inkitt.
- (Gemini uniquement) Vous avez utilisé
urlau lieu dehttpUrldanssettings.json. Gemini revient silencieusement au SSE et la connexion reste bloquée.
401 Unauthorized à chaque appel d'outil.
L'en-tête n'est pas attaché. Vérifiez que votre config utilise la forme exacte montrée ci-dessus — pour Claude Code et Gemini, la valeur de l'en-tête doit inclure le mot littéral Bearer suivi d'un espace, puis du jeton.
403 Forbidden après une connexion réussie.
Votre PAT a été accepté mais n'a pas le scope pour l'outil que vous appelez. Vérifiez les permissions de votre PAT dans l'interface des jetons Inkitt.
Le jeton apparaît dans l'historique du shell.
Utilisez le modèle de variable d'environnement (${INKITT_PAT} dans les fichiers de config), ou pour des invocations CLI ponctuelles, préfixez la commande par un espace — la plupart des shells avec HISTCONTROL=ignorespace ignoreront la ligne.