Serveur MCP Kontent.ai

NPM VersionContributorsForksStargazersIssuesMIT LicenseDiscord

Transformez vos opérations de contenu avec des outils alimentés par l'IA pour Kontent.ai. Créez, gérez et explorez votre contenu structuré par le biais de conversations en langage naturel dans votre éditeur IA préféré.

Kontent.ai MCP Server implémente le Model Context Protocol pour connecter vos projets Kontent.ai avec des outils d'IA comme Claude, Cursor et VS Code. Il permet aux modèles d'IA de comprendre la structure de votre contenu et d'effectuer des opérations par le biais d'instructions en langage naturel.

✨ Caractéristiques principales

  • 🚀 Prototypage rapide: Transformez vos diagrammes en modèles de contenu vivants en quelques secondes
  • 📈 Visualisation des données: Visualisez votre modèle de contenu dans le format de votre choix

Table des matières

🔌 Démarrage rapide

🔑 Conditions préalables

Avant de pouvoir utiliser le serveur MCP, vous avez besoin :

  1. Un compte Kontent.ai - Inscrivez-vous si vous n'avez pas de compte.
  2. Un projet - Créer un projet avec lequel travailler.
  3. Une clé API de gestion - Créez une clé API de gestion avec les permissions appropriées.
  4. ID d'environnement - Obtenez votre ID d'environnement.

🛠 Options de configuration

Vous pouvez exécuter le serveur MCP de Kontent.ai avec npx :

Transport STDIO

npx @kontent-ai/mcp-server@latest stdio

Transport HTTP en flux continu

npx @kontent-ai/mcp-server@latest shttp

🛠️ Outils disponibles

Contexte et configuration

  • get-initial-context - 🚨 PREMIÈRE ÉTAPE OBLIGATOIRE: Cet outil DOIT être appelé avant d'utiliser TOUT autre outil. Il fournit le contexte essentiel, la configuration et les directives opérationnelles pour Kontent.ai

Gestion des types de contenu

  • get-type-mapi - Obtenir le type de contenu Kontent.ai par ID interne à partir de l'API de gestion
  • list-content-types-mapi - Obtenir tous les types de contenu de Kontent.ai à partir de l'API de gestion
  • add-content-type-mapi - Ajouter un nouveau type de contenu Kontent.ai via l'API de gestion
  • patch-content-type-mapi - Mettre à jour un type de contenu Kontent.ai existant par nom de code en utilisant les opérations de patch (move, addInto, remove, replace)
  • delete-content-type-mapi - Supprimer un type de contenu Kontent.ai par nom de code

Gestion des snippets de type de contenu

  • get-type-snippet-mapi - Obtenir un extrait de type de contenu Kontent.ai par ID interne depuis l'API de gestion
  • list-content-type-snippets-mapi - Obtenir tous les snippets de type de contenu de Kontent.ai à partir de l'API de gestion
  • add-content-type-snippet-mapi - Ajouter un nouvel extrait de type de contenu Kontent.ai via l'API de gestion

Gestion de la taxonomie

  • get-taxonomy-group-mapi - Obtenir un groupe de taxonomie Kontent.ai par ID interne depuis l'API de gestion
  • list-taxonomy-groups-mapi - Obtenir tous les groupes de taxonomie de Kontent.ai depuis l'API de gestion
  • add-taxonomy-group-mapi - Ajouter un nouveau groupe de taxonomie Kontent.ai via l'API de gestion

Gestion des éléments de contenu

  • get-item-mapi - Obtenir un élément de Kontent.ai par ID interne depuis l'API de gestion
  • get-item-dapi - Obtenir un élément Kontent.ai par nom de code depuis l'API de livraison
  • get-variant-mapi - Obtenir la variante linguistique de l'élément de contenu de Kontent.ai à partir de l'API de gestion
  • add-content-item-mapi - Ajouter un nouvel élément de contenu Kontent.ai via l'API de gestion. Cela crée la structure de l'élément de contenu mais n'ajoute pas de contenu aux variantes linguistiques. Utilisez upsert-language-variant-mapi pour ajouter du contenu à l'élément
  • update-content-item-mapi - Mettre à jour un élément de contenu Kontent.ai existant par ID interne via l'API de gestion. L'élément de contenu doit déjà exister - cet outil ne créera pas de nouveaux éléments
  • delete-content-item-mapi - Supprimer un élément de contenu Kontent.ai par son identifiant interne depuis l'API de gestion
  • upsert-language-variant-mapi - Créer ou mettre à jour la variante linguistique Kontent.ai d'un élément de contenu via l'API de gestion. Cela ajoute du contenu réel aux éléments de l'élément de contenu. Lors de la mise à jour d'une variante existante, seuls les éléments fournis seront modifiés
  • create-variant-version-mapi - Créer une nouvelle version d'une variante linguistique de Kontent.ai via l'API de gestion. Cette opération crée une nouvelle version d'une variante linguistique existante, utile pour le versionnage du contenu et la création de nouveaux brouillons à partir du contenu publié
  • delete-language-variant-mapi - Supprimer une variante linguistique de Kontent.ai à partir de l'API de gestion
  • filter-variants-mapi - Rechercher et filtrer les variantes linguistiques Kontent.ai des éléments de contenu en utilisant l'API de gestion

Gestion des actifs

  • get-asset-mapi - Obtenir un actif Kontent.ai spécifique par ID interne à partir de l'API de gestion
  • list-assets-mapi - Obtenir tous les actifs de Kontent.ai à partir de l'API de gestion

Gestion des langues

  • list-languages-mapi - Obtenir toutes les langues de Kontent.ai à partir de l'API de gestion

Gestion des flux de travail

  • list-workflows-mapi - Obtenir tous les workflows de Kontent.ai à partir de l'API de gestion. Les workflows définissent les étapes du cycle de vie du contenu et les transitions entre elles
  • change-variant-workflow-step-mapi - Modifier l'étape du flux de travail d'une variante linguistique dans Kontent.ai. Cette opération permet de déplacer une variante linguistique vers une étape différente du flux de travail, ce qui permet de gérer le cycle de vie du contenu, par exemple en déplaçant le contenu d'un brouillon à une révision, d'une révision à une publication, etc.
  • publish-variant-mapi - Publier ou planifier une variante linguistique d'un élément de contenu dans Kontent.ai. Cette opération peut soit publier immédiatement la variante, soit programmer sa publication à une date et une heure futures spécifiques avec une spécification optionnelle de fuseau horaire
  • unpublish-variant-mapi - Dépublier ou planifier la dépublication d'une variante linguistique d'un élément de contenu dans Kontent.ai. Cette opération permet de dépublier immédiatement la variante (en la rendant indisponible via l'API de livraison) ou de programmer sa dépublication à une date et une heure futures spécifiques avec une spécification de fuseau horaire optionnelle

⚙️ Configuration

Le serveur supporte deux modes de configuration :

Mode mono-locataire (par défaut)

Pour le mode locataire unique, configurez les variables d'environnement :

VariableVariable DescriptionObligatoire
KONTENT_API_KEYVotre clé d'API de gestion Kontent.ai
KONTENT_ENVIRONMENT_IDVotre identifiant d'environnement
PORTPort pour le transport HTTP (3001 par défaut)

Mode multi-locataires

Pour le mode multi-locataires (Streamable HTTP uniquement), le serveur accepte :

  • L'ID de l'environnement comme paramètre de chemin d'accès à l'URL : /{environmentId}/mcp
  • Laclé API via le jeton Bearer dans l'en-tête Authorization : Authorization : Bearer <api-key>

Ce mode permet à une seule instance de serveur de gérer les demandes pour plusieurs environnements Kontent.ai de manière sécurisée sans nécessiter de variables d'environnement.

🚀 Options de transport

📟 Transport STDIO

Pour exécuter le serveur avec le transport STDIO, configurez votre client MCP avec :

{"kontent-ai-stdio" : {"command" : "npx", "args" : ["@kontent-ai/mcp-server@latest", "stdio"], "env" : {"KONTENT_API_KEY" : "<management-api-key>", "KONTENT_ENVIRONMENT_ID" : "<environment-id>" } } }

🌊 Transport HTTP en continu

Pour le transport HTTP en continu, démarrez d'abord le serveur :

npx @kontent-ai/mcp-server@latest shttp

Mode locataire unique

Avec des variables d'environnement dans un fichier .env, ou autrement accessibles au processus :

KONTENT_API_KEY=<management-api-key> KONTENT_ENVIRONMENT_ID=<environment-id> PORT=3001 # optionnel, la valeur par défaut est 3001

Configurez ensuite votre client MCP :

{ "kontent-ai-http" : { "url" : "http://localhost:3001/mcp" } }

Mode multi-locataires

Aucune variable d'environnement n'est nécessaire. Le serveur accepte les demandes pour plusieurs environnements en utilisant des paramètres de chemin d'accès URL et l'authentification Bearer.

Configuration VS Code

Créez un fichier .vscode/mcp.json dans votre espace de travail :

{ "servers" : { "kontent-ai-multi" : { "uri" : "http://localhost:3001/<environment-id>/mcp", "headers" : { "Authorization" : "Bearer <management-api-key>" } } } }

Pour une configuration sécurisée avec des invites de saisie :

{ "inputs" : [ { "id" : "apiKey", "type" : "password", "description" : "Kontent.ai API Key" }, { "id" : "environmentId", "type" : "text", "description" : "Environment ID" } ], "servers" : { "kontent-ai-multi" : { "uri" : "http://localhost:3001/${inputs.environmentId}/mcp", "headers" : { "Authorization" : "Bearer ${inputs.apiKey}" } } } }
Configuration de Claude Desktop

Mettez à jour votre fichier de configuration de Claude Desktop :

  • macOS: ~/Bibliothèque/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\\Claudeclaude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Utiliser mcp-remote comme proxy pour ajouter des en-têtes d'authentification :

{ "mcpServers" : { "kontent-ai-multi" : { "command" : "npx", "args" : ["mcp-remote", "http://localhost:3001/<environment-id>/mcp", "--header", "Authorization : Bearer <management-api-key>" ] } } }
Configuration du code Claude

Pour Claude Code (claude.ai/code), ajoutez la configuration du serveur :

# Ajouter le serveur multi-tenant claude mcp add \N-url "http://localhost:3001/<environment-id>/mcp" \N-header "Authorization : Bearer <management-api-key>" \N-Kontent-ai-multi

Ou configurer directement dans les paramètres :

{ "kontent-ai-multi" : {"url" : "http://localhost:3001/<environment-id>/mcp", "headers" : { "Authorization" : "Bearer <management-api-key>" } } }

Important: Remplacez <environment-id> par votre identifiant d'environnement Kontent.ai réel (format GUID) et <management-api-key> par votre clé d'API de gestion.

💻 Développement

🛠 Installation locale

# Cloner le dépôt git clone https://github.com/kontent-ai/mcp-server.git cd mcp-server # Installer les dépendances npm ci # Construire le projet npm run build # Démarrer le serveur npm run start:stdio # Pour le transport STDIO npm run start:shttp # Pour le transport HTTP Streamable # Démarrer le serveur avec rechargement automatique (pas besoin de le construire d'abord) npm run dev:stdio # Pour le transport STDIO npm run dev:shttp # Pour le transport HTTP Streamable

📂 Structure du projet

  • src/ - Code source
    • tools/ - Implémentations des outils MCP
    • clients/ - Configuration du client de l'API Kontent.ai
    • schemas/ - Schémas de validation des données
    • utils/ - Fonctions utilitaires
      • errorHandler.ts - Gestion standardisée des erreurs pour les outils MCP
      • throwError.ts - Utilitaire générique de renvoi d'erreurs
    • server.ts - Configuration du serveur principal et enregistrement des outils
    • bin.ts - Point d'entrée unique qui gère les deux types de transport

🔍 Débogage

Pour le débogage, vous pouvez utiliser l'inspecteur MCP :

npx @modelcontextprotocol/inspector -e KONTENT_API_KEY=<key> -e KONTENT_ENVIRONMENT_ID=<env-id> node path/to/build/bin.js

Vous pouvez également utiliser l'inspecteur MCP sur un serveur HTTP en cours d'exécution :

npx @modelcontextprotocol/inspector

Ceci fournit une interface web pour inspecter et tester les outils disponibles.

Licence

MIT

Liés dans Officiel 🌟 - MCP Servers sécurisés

ServeurRésuméActions
AWS CoreServeur MCP qui fournit un point de départ pour l'utilisation des serveurs MCP awslabs suivantsVoir
DataWorksVoir
HostingerServeur de protocole de contexte de modèle (MCP) pour l'API Hostinger.Voir
CloudflareModel Context Protocol (MCP) est un nouveau protocole standardisé pour gérer le contexte entre les g...Voir
AWS Bedrock KB RetrievalServeur MCP pour l'accès aux bases de connaissances Amazon BedrockVoir
EdgeOne Pages MCPUn service MCP pour déployer un contenu HTML, un dossier et un fichier zip sur EdgeOne Pages et obte...Voir