Servidor MCP de Kontent.ai
Transforme sus operaciones de contenido con herramientas potenciadas por IA para Kontent.ai. Cree, gestione y explore su contenido estructurado a través de conversaciones en lenguaje natural en su editor favorito habilitado para IA.
El servidor MCP de Kontent.ai implementa el protocolo de contexto de modelo para conectar sus proyectos de Kontent.ai con herramientas de IA como Claude, Cursor y VS Code. Permite que los modelos de IA entiendan la estructura de tu contenido y realicen operaciones a través de instrucciones en lenguaje natural.
✨ Características principales
- 🚀 Creación rápida de prototipos: Transforma tus diagramas en modelos de contenido en vivo en cuestión de segundos
- 📈 Visualización de datos: Visualiza tu modelo de contenidos en el formato que quieras
Tabla de contenidos
- características principales
- inicio rápido
- 🛠️ Herramientas disponibles
- ⚙️ Configuración
- 🚀 Opciones de transporte
- 💻 Desarrollo
- Licencia
🔌 Inicio rápido
🔑 Requisitos previos
Antes de poder utilizar el servidor MCP, necesitas:
- Una cuenta de Kontent.ai - Regístrate si no tienes una cuenta.
- Un proyecto - Crea un proyecto con el que trabajar.
- ClaveAPI de gestión - Crea una clave API de gestión con los permisos adecuados.
- IDdeentorno - Obtén tu ID de entorno.
🛠 Opciones de configuración
Puedes ejecutar el Servidor MCP de Kontent.ai con npx:
Transporte STDIO
npx @kontent-ai/mcp-server@latest stdio
Transporte HTTP Streamable
npx @kontent-ai/mcp-server@latest shttp
🛠️ Herramientas disponibles
Contexto y configuración
- get-initial-context - 🚨 PRIMER PASO OBLIGATORIO: Esta herramienta DEBE ser llamada antes de usar CUALQUIER otra herramienta. Proporciona directrices esenciales de contexto, configuración y funcionamiento para Kontent.ai
Gestión de tipos de contenido
- get-type-mapi - Obtener el tipo de contenido de Kontent.ai por ID interno desde la API de gestión
- list-content-types-mapi - Obtiene todos los tipos de contenido de Kontent.ai de la API de gestión
- add-content-type-mapi - Añade un nuevo tipo de contenido Kontent.ai a través de la API de gestión
- patch-content-type-mapi - Actualiza un tipo de contenido Kontent.ai existente por nombre en clave utilizando operaciones de parcheado (mover, addInto, eliminar, reemplazar)
- delete-content-type-mapi - Elimina un tipo de contenido Kontent.ai por nombre en clave
Gestión de fragmentos de tipos de contenido
- get-type-snippet-mapi - Obtener un fragmento de tipo de contenido de Kontent.ai por ID interno desde la API de gestión
- list-content-type-snippets-mapi - Obtiene todos los fragmentos de tipo de contenido de Kontent.ai de la API de gestión
- add-content-type-snippet-mapi - Añadir un nuevo fragmento de tipo de contenido de Kontent.ai a través de la API de gestión
Gestión de taxonomías
- get-taxonomy-group-mapi - Obtener grupo de taxonomía Kontent.ai por ID interno desde la API de Gestión
- list-taxonomy-groups-mapi - Obtiene todos los grupos taxonómicos de Kontent.ai desde la API de gestión
- add-taxonomy-group-mapi - Añade un nuevo grupo taxonómico Kontent.ai a través de la API de Gestión
Gestión de elementos de contenido
- get-item-mapi - Obtener un elemento Kontent.ai por ID interno desde la API de Gestión
- get-item-dapi - Obtener un elemento Kontent.ai por nombre en clave desde la API de entrega
- get-variant-mapi - Obtiene la variante de idioma de Kontent.ai del elemento de contenido desde la API de Gestión
- add-content-item-mapi - Añade un nuevo elemento de contenido Kontent.ai a través de la API de gestión. Esto crea la estructura del elemento de contenido pero no añade contenido a las variantes de idioma. Utilice upsert-language-variant-mapi para añadir contenido al elemento
- update-content-item-mapi - Actualiza un elemento de contenido Kontent.ai existente por ID interno a través de la API de gestión. El elemento de contenido debe existir ya - esta herramienta no creará nuevos elementos
- delete-content-item-mapi - Elimina un elemento de contenido Kontent.ai por ID interno desde la API de gestión
- upsert-language-variant-mapi - Crea o actualiza la variante de idioma Kontent.ai de un elemento de contenido a través de la API de gestión. Esto añade contenido real a los elementos del elemento de contenido. Al actualizar una variante existente, sólo se modificarán los elementos proporcionados
- create-variant-version-mapi - Crear una nueva versión de una variante lingüística de Kontent.ai a través de la API de gestión. Esta operación crea una nueva versión de una variante lingüística existente, útil para el versionado de contenidos y la creación de nuevos borradores a partir de contenidos publicados
- delete-language-variant-mapi - Elimina una variante de idioma de Kontent.ai desde la API de gestión
- filter-variants-mapi - Buscar y filtrar variantes lingüísticas de Kontent.ai de elementos de contenido mediante la API de gestión
Gestión de activos
- get-asset-mapi - Obtener un activo específico de Kontent.ai por ID interno desde la API de Gestión
- list-assets-mapi - Obtener todos los activos de Kontent.ai desde la API de gestión
Gestión de idiomas
- list-languages-mapi - Obtiene todos los idiomas de Kontent.ai de la API de Gestión
Gestión de flujos de trabajo
- list-workflows-mapi - Obtiene todos los flujos de trabajo de Kontent.ai de la API de gestión. Los flujos de trabajo definen las etapas del ciclo de vida del contenido y las transiciones entre ellas
- change-variant-workflow-step-mapi - Cambia el paso del flujo de trabajo de una variante lingüística en Kontent.ai. Esta operación mueve una variante lingüística a un paso diferente en el flujo de trabajo, lo que permite la gestión del ciclo de vida del contenido, como mover el contenido de borrador a revisión, de revisión a publicado, etc.
- publish-variant-mapi - Publica o programa una variante lingüística de un elemento de contenido en Kontent.ai. Esta operación puede publicar inmediatamente la variante o programarla para su publicación en una fecha y hora futuras específicas con especificación opcional de la zona horaria
- unpublish-variant-mapi - Anular o programar la anulación de la publicación de una variante lingüística de un elemento de contenido en Kontent.ai. Esta operación puede anular inmediatamente la publicación de la variante (haciendo que no esté disponible a través de la API de entrega) o programar su anulación en una fecha y hora futuras específicas con especificación opcional de zona horaria
⚙️ Configuración
El servidor admite dos modos de configuración:
Modo de inquilino único (predeterminado)
Para el modo de inquilino único, configure las variables de entorno:
Variable | Descripción | Requerida |
---|---|---|
KONTENT_API_KEY | Tu clave de la API de gestión de Kontent.ai | ✅ |
KONTENT_ENVIRONMENT_ID | El identificador de tu entorno | ✅ |
PUERTO | Puerto para el transporte HTTP (por defecto es 3001) | ❌ |
Modo multi-inquilino
Para el modo multiinquilino (sólo Streamable HTTP), el servidor acepta:
- Environment ID como parámetro de ruta URL:
/{environmentId}/mcp
- API Key a través de Bearer token en la cabecera Authorization:
Authorization: Bearer <api-key>
Este modo permite que una única instancia de servidor gestione las solicitudes de varios entornos de Kontent.ai de forma segura sin necesidad de variables de entorno.
🚀 Opciones de transporte
📟 Transporte STDIO
Para ejecutar el servidor con transporte STDIO, configura tu cliente MCP con:
{ "kontent-ai-stdio": { "command": "npx", "args": ["@kontent-ai/mcp-server@latest", "stdio"], "env": {"KONTENT_API_KEY": "<management-api-key>", "KONTENT_ENVIRONMENT_ID": "<environment-id>" } }
🌊 Transporte HTTP Streamable
Para el transporte HTTP Streamable, primero inicie el servidor:
npx @kontent-ai/mcp-server@latest shttp
Modo de un solo inquilino
Con variables de entorno en un archivo .env
, o accesibles de otro modo al proceso:
KONTENT_API_KEY=<clave-api-gestión> KONTENT_ENVIRONMENT_ID=<id-entorno> PORT=3001 # opcional, por defecto 3001
A continuación, configure su cliente MCP:
{ "kontent-ai-http": { "url": "http://localhost:3001/mcp" } }
Modo Multi-Tenant
No se requieren variables de entorno. El servidor acepta peticiones para múltiples entornos utilizando parámetros de ruta URL y autenticación Bearer.
Configuración de VS Code
Cree un archivo .vscode/mcp.json
en su espacio de trabajo:
{ "servers": { "kontent-ai-multi": { "uri": "http://localhost:3001/<environment-id>/mcp", "headers": {"Authorization": "Bearer <management-api-key>" } } }
Para una configuración segura con solicitudes de entrada:
{ "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}" } } }
Configuración de Claude Desktop
Actualice el archivo de configuración de Claude Desktop:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
- Linux:
~/.config/Claude/claude_desktop_config.json
Utilice mcp-remote
como proxy para añadir cabeceras de autenticación:
{ "mcpServers": { "kontent-ai-multi": { "command": "npx", "args": [ "mcp-remote", "http://localhost:3001/<environment-id>/mcp", "--header", "Authorization: Bearer <management-api-key>" ] } }
Configuración de Claude Code
Para Claude Code (claude.ai/code), añada la configuración del servidor:
# Add the multi-tenant server claude mcp add \ --url "http://localhost:3001/<environment-id>/mcp" \ --header "Authorization: Bearer <management-api-key>" \ kontent-ai-multi
O configurar directamente en la configuración:
{ "kontent-ai-multi": { "url": "http://localhost:3001/<environment-id>/mcp", "headers": { "Authorization": "Bearer <management-api-key>" } }
Importante: Sustituye <environment-id>
por el ID real de tu entorno Kontent.ai (formato GUID) y <management-api-key>
por tu clave de la API de gestión.
💻 Desarrollo
🛠 Instalación local
# Clonar el repositorio git clone https://github.com/kontent-ai/mcp-server.git cd mcp-server # Instalar dependencias npm ci # Construir el proyecto npm run build # Arrancar el servidor npm run start:stdio # Para transporte STDIO npm run start:shttp # Para transporte Streamable HTTP # Arrancar el servidor con recarga automática (no hace falta construir primero) npm run dev:stdio # Para transporte STDIO npm run dev:shttp # Para transporte Streamable HTTP
📂 Estructura del proyecto
src/
- Código fuentetools/
- Implementación de herramientas MCPclients/
- Configuración del cliente de la API de Kontent.aischemas/
- Esquemas de validación de datosutils/
- Funciones de utilidaderrorHandler.ts
- Gestión de errores estandarizada para herramientas MCPthrowError.ts
- Utilidad genérica para lanzar errores
server.ts
- Configuración principal del servidor y registro de herramientasbin.ts
- Punto de entrada único que gestiona ambos tipos de transporte
🔍 Depuración
Para la depuración, puede utilizar el inspector MCP:
npx @modelcontextprotocol/inspector -e KONTENT_API_KEY=<key> -e KONTENT_ENVIRONMENT_ID=<env-id> node path/to/build/bin.js
O utilice el inspector MCP en un servidor HTTP fluido en ejecución:
npx @modelcontextprotocol/inspector
Esto proporciona una interfaz web para inspeccionar y probar las herramientas disponibles.
Licencia
MIT