Kontent.ai

offiziell

Erstellen, verwalten und erkunden Sie Ihre Inhalte und Ihr Content-Modell mit natürlicher Sprache in jedem MCP-kompatiblen KI-Tool.

Was kann man mit Kontent Ai MCP machen?

  • Inhaltsstruktur erkunden — Bitten Sie darum, Inhaltstypen, Snippets, Taxonomien oder Assets über list-content-types, list-content-type-snippets, list-taxonomy-groups oder list-assets aufzulisten.
  • Content-Modelle erstellen und ändern — Weisen Sie den Assistenten an, neue Inhaltstypen, Snippets oder Taxonomiegruppen zu erstellen oder sie mit create-content-type, patch-content-type oder patch-taxonomy-group zu aktualisieren.
  • Content-Elemente und Varianten verwalten — Lassen Sie den Assistenten Content-Elemente und deren Sprachvarianten mit list-content-item-variants, update-content-item-variant oder search-content-item-variants erstellen, aktualisieren, suchen oder abrufen.
  • Veröffentlichung und Workflows steuern — Bitten Sie darum, Inhalte mit publish-content-item-variant, change-content-item-variant-workflow-step oder cancel-scheduled-publishing-content-item-variant zu veröffentlichen, die Veröffentlichung zurückzuziehen, zu planen oder durch Lebenszyklusphasen zu bewegen.
  • Umgebungseinstellungen verwalten — Weisen Sie den Assistenten an, Sprachen, Sammlungen, Räume oder Workflows mit create-language, patch-collections, create-space oder create-workflow zu verwalten.

Dokumentation

Kontent.ai MCP Server

NPM Version Contributors Forks Stargazers Issues MIT License Discord

Transformieren Sie Ihre Content-Operationen mit KI-gestützten Tools für Kontent.ai. Erstellen, verwalten und erkunden Sie Ihre strukturierten Inhalte durch Gespräche in natürlicher Sprache in Ihrem bevorzugten KI-fähigen Editor.

Der Kontent.ai MCP Server implementiert das Model Context Protocol, um Ihre Kontent.ai-Projekte mit KI-Tools wie Claude, Cursor und VS Code zu verbinden. Er ermöglicht KI-Modellen, Ihre Inhaltsstruktur zu verstehen und Operationen über Anweisungen in natürlicher Sprache auszuführen.

✨ Hauptfunktionen

  • 🚀 Schnelles Prototyping: Verwandeln Sie Ihre Diagramme in Sekundenschnelle in Live-Inhaltsmodelle
  • 📈 Datenvisualisierung: Visualisieren Sie Ihr Inhaltsmodell in jedem gewünschten Format

Inhaltsverzeichnis

🔌 Schnellstart

🔑 Voraussetzungen

Bevor Sie den MCP-Server verwenden können, benötigen Sie:

  1. Ein Kontent.ai-KontoRegistrieren Sie sich, wenn Sie noch kein Konto haben.
  2. Ein ProjektErstellen Sie ein Projekt, mit dem Sie arbeiten möchten.
  3. Management-API-SchlüsselErstellen Sie einen Schlüssel mit entsprechenden Berechtigungen.
  4. Umgebungs-IDErmitteln Sie Ihre Umgebungs-ID.

🛠 Einrichtungsoptionen

Sie können den Kontent.ai MCP Server mit npx ausführen:

STDIO-Transport

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

Streamable-HTTP-Transport

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

🛠️ Verfügbare Tools

Patch-Operations-Anleitung

  • get-patch-guide – 🚨 ERFORDERLICH vor jeder Patch-Operation. Patch-Operations-Anleitung für Kontent.ai nach Entitätstyp abrufen

Verwaltung von Inhaltstypen

  • get-content-type – Kontent.ai-Inhaltstyp nach ID abrufen
  • list-content-types – Alle Kontent.ai-Inhaltstypen abrufen
  • create-content-type – Neuen Kontent.ai-Inhaltstyp erstellen
  • patch-content-type – Vorhandenen Kontent.ai-Inhaltstyp per Codename mit Patch-Operationen aktualisieren (move, addInto, remove, replace)
  • delete-content-type – Kontent.ai-Inhaltstyp nach ID löschen

Verwaltung von Inhaltstyp-Snippets

  • get-content-type-snippet – Kontent.ai-Inhaltstyp-Snippet nach ID abrufen
  • list-content-type-snippets – Alle Kontent.ai-Inhaltstyp-Snippets abrufen
  • create-content-type-snippet – Neues Kontent.ai-Inhaltstyp-Snippet erstellen
  • patch-content-type-snippet – Vorhandenes Kontent.ai-Inhaltstyp-Snippet nach ID mit Patch-Operationen aktualisieren (move, addInto, remove, replace)
  • delete-content-type-snippet – Kontent.ai-Inhaltstyp-Snippet nach ID löschen

Taxonomieverwaltung

  • get-taxonomy-group – Kontent.ai-Taxonomiegruppe nach ID abrufen
  • list-taxonomy-groups – Alle Kontent.ai-Taxonomiegruppen abrufen
  • create-taxonomy-group – Neue Kontent.ai-Taxonomiegruppe erstellen
  • patch-taxonomy-group – Kontent.ai-Taxonomiegruppe mit Patch-Operationen aktualisieren (addInto, move, remove, replace)
  • delete-taxonomy-group – Kontent.ai-Taxonomiegruppe nach ID löschen

Content-Item-Verwaltung

  • get-content-item – Kontent.ai-Content-Item nach ID abrufen
  • get-content-item-variant – Kontent.ai-Content-Item-Variante abrufen (Sprachversion/Übersetzung). Gibt die aktuelle Version zurück – Entwurf, falls vorhanden, andernfalls veröffentlicht
  • get-published-content-item-variant-version – Die veröffentlichte Version einer Kontent.ai-Content-Item-Variante abrufen. Verwenden Sie dies, wenn eine neuere Entwurfsversion existiert, Sie aber den aktuell veröffentlichten (Live-)Inhalt benötigen
  • get-content-item-translations – Alle Kontent.ai-Content-Item-Übersetzungen abrufen – jede Sprachversion (Variante) eines bestimmten Content-Items
  • list-content-item-variants – Kontent.ai-Content-Items mit Content-Item-Varianten (Sprachversionen/Übersetzungen) auflisten, filtern und durchsuchen
  • create-content-item – Neues Kontent.ai-Content-Item erstellen (erstellt nur den Container; verwenden Sie create-content-item-variant, um Sprachversionen/Übersetzungen hinzuzufügen)
  • update-content-item – Vorhandenes Kontent.ai-Content-Item nach ID aktualisieren. Das Content-Item muss bereits existieren – dieses Tool erstellt keine neuen Items
  • delete-content-item – Kontent.ai-Content-Item nach ID löschen
  • create-content-item-variant – Kontent.ai-Content-Item-Variante erstellen und den aktuellen Benutzer als Mitwirkenden zuweisen. Elementwerte müssen die im Inhaltstyp definierten Einschränkungen und Richtlinien erfüllen. Senden Sie nur die Elemente, die Sie festlegen möchten; ausgelassene werden leer initialisiert
  • update-content-item-variant – Kontent.ai-Content-Item-Variante eines Content-Items aktualisieren. Elementwerte müssen die im Inhaltstyp definierten Einschränkungen und Richtlinien erfüllen. Senden Sie nur die Elemente, die Sie ändern möchten – ausgelassene Elemente bleiben unverändert. Für Rich-Text-Elemente mit Komponenten übermitteln Sie das vollständige Element (Wert plus das vollständige Komponenten-Array, einschließlich unveränderter Komponenten)
  • create-new-content-item-variant-version – Neue Version einer Kontent.ai-Content-Item-Variante erstellen. Diese Operation erstellt eine neue Version einer vorhandenen Content-Item-Variante, nützlich für Inhaltsversionierung und das Erstellen neuer Entwürfe aus veröffentlichten Inhalten
  • delete-content-item-variant – Kontent.ai-Content-Item-Variante löschen
  • bulk-get-content-item-variants – Kontent.ai-Content-Items mit ihren Content-Item-Varianten per Stapelabruf nach Item- und Sprachreferenzpaaren abrufen. Verwenden Sie dies nach list-content-item-variants, um vollständige Inhaltsdaten für bestimmte Item+Sprach-Paare abzurufen. Items ohne Variante in der angeforderten Sprache werden ohne die Varianten-Eigenschaft zurückgegeben. Liefert paginierte Ergebnisse mit Fortsetzungs-Token
  • search-content-item-variants – KI-gestützte semantische Suche zum Finden von Inhalten nach Bedeutung und Konzepten in einer bestimmten Content-Item-Variante. Verwenden Sie dies für: konzeptionelle Suchen, wenn Sie keine genauen Schlüsselwörter kennen. Eingeschränkte Filteroptionen (nur Varianten-ID)

Asset-Verwaltung

  • get-asset – Ein bestimmtes Kontent.ai-Asset nach ID abrufen
  • list-assets – Alle Kontent.ai-Assets abrufen
  • update-asset – Kontent.ai-Asset nach ID aktualisieren

Asset-Ordner-Verwaltung

  • list-asset-folders – Alle Kontent.ai-Asset-Ordner auflisten
  • patch-asset-folders – Kontent.ai-Asset-Ordner mit Patch-Operationen ändern (addInto zum Hinzufügen neuer Ordner, rename zum Umbenennen, remove zum Löschen von Ordnern)

Sprachverwaltung

  • list-languages – Alle Kontent.ai-Sprachen abrufen (enthält aktive und inaktive – prüfen Sie die Eigenschaft is_active)
  • create-language – Neue Kontent.ai-Sprache erstellen (Sprachen werden immer als aktiv erstellt)
  • patch-language – Kontent.ai-Sprache mit Replace-Operationen aktualisieren (nur aktive Sprachen können geändert werden – zum Aktivieren/Deaktivieren verwenden Sie die Kontent.ai-Weboberfläche)

Sammlungsverwaltung

  • list-collections – Alle Kontent.ai-Sammlungen abrufen. Sammlungen setzen Grenzen für Content-Items in Ihrer Umgebung und helfen, Inhalte nach Team, Marke oder Projekt zu organisieren
  • patch-collections – Kontent.ai-Sammlungen mit Patch-Operationen aktualisieren (addInto zum Hinzufügen neuer Sammlungen, move zum Umsortieren, remove zum Löschen leerer Sammlungen, replace zum Umbenennen)

Space-Verwaltung

  • list-spaces – Alle Kontent.ai-Spaces abrufen
  • create-space – Neuen Kontent.ai-Space zum Verwalten einer Website oder eines Kanals erstellen
  • patch-space – Kontent.ai-Space mit Replace-Operationen patchen
  • delete-space – Kontent.ai-Space löschen

Rollenverwaltung

  • list-roles – Alle Kontent.ai-Rollen abrufen. Erfordert Enterprise- oder Flex-Plan mit der Berechtigung „Benutzerdefinierte Rollen verwalten"

Workflow-Verwaltung

  • list-workflows – Alle Kontent.ai-Workflows abrufen. Workflows definieren die Phasen des Inhaltslebenszyklus und die Übergänge zwischen ihnen
  • create-workflow – Neuen Kontent.ai-Workflow mit benutzerdefinierten Schritten, Übergängen, Bereichen und Rollenberechtigungen erstellen
  • update-workflow – Vorhandenen Kontent.ai-Workflow nach ID aktualisieren. Schritte, Übergänge, Bereiche und Rollenberechtigungen ändern. Schritte, die in Verwendung sind, können nicht entfernt werden
  • delete-workflow – Kontent.ai-Workflow nach ID löschen. Der Workflow darf von keinem Content-Item verwendet werden
  • change-content-item-variant-workflow-step – Den Workflow-Schritt einer Content-Item-Variante in Kontent.ai ändern. Diese Operation verschiebt eine Content-Item-Variante zu einem anderen Schritt im Workflow und ermöglicht so die Verwaltung des Inhaltslebenszyklus, z. B. das Verschieben von Inhalten von Entwurf zu Überprüfung, von Überprüfung zu veröffentlicht usw.
  • publish-content-item-variant – Eine Content-Item-Variante eines Content-Items in Kontent.ai veröffentlichen oder planen. Diese Operation kann die Variante entweder sofort veröffentlichen oder für die Veröffentlichung zu einem bestimmten zukünftigen Datum und Zeitpunkt mit optionaler Zeitzonenangabe planen
  • unpublish-content-item-variant – Die Veröffentlichung einer Content-Item-Variante eines Content-Items in Kontent.ai zurücknehmen oder planen. Diese Operation kann die Variante entweder sofort zurückziehen (wodurch sie über die Delivery API nicht mehr verfügbar ist) oder die Rücknahme zu einem bestimmten zukünftigen Datum und Zeitpunkt mit optionaler Zeitzonenangabe planen
  • cancel-scheduled-publishing-content-item-variant – Die geplante Veröffentlichung einer Content-Item-Variante in Kontent.ai abbrechen. Diese Operation setzt eine für die Veröffentlichung geplante Variante auf ihren vorherigen Workflow-Schritt zurück und ermöglicht weitere Bearbeitungen

⚙️ Konfiguration

Der Server unterstützt zwei Modi, die jeweils an ihren Transport gebunden sind:

TransportModusAuthentifizierungAnwendungsfall
STDIOSingle-TenantUmgebungsvariablenLokale Kommunikation mit einer einzelnen Kontent.ai-Umgebung
Streamable HTTPMulti-TenantBearer-Token pro AnfrageRemote-/gemeinsamer Server für mehrere Umgebungen

Single-Tenant-Modus (STDIO)

Konfigurieren Sie Anmeldeinformationen über Umgebungsvariablen:

VariableBeschreibungErforderlich
KONTENT_API_KEYIhr Kontent.ai-Schlüssel
KONTENT_ENVIRONMENT_IDIhre Umgebungs-ID
appInsightsConnectionStringApplication-Insights-Verbindungszeichenfolge für Telemetrie
projectLocationProjektstandortkennung für Telemetrie-Tracking
manageApiUrlBenutzerdefinierte Basis-URL (für Vorschauumgebungen)

Multi-Tenant-Modus (Streamable HTTP)

Beim Streamable-HTTP-Transport werden Anmeldeinformationen pro Anfrage bereitgestellt:

  • Umgebungs-ID als URL-Pfadparameter: /{environmentId}/mcp
  • API-Schlüssel über Bearer-Token im Authorization-Header: Authorization: Bearer <api-key>

Dies ermöglicht einer einzelnen Serverinstanz, Anfragen für mehrere Kontent.ai-Umgebungen zu verarbeiten, ohne dass Umgebungsvariablen für Anmeldeinformationen erforderlich sind.

VariableBeschreibungErforderlich
PORTPort für HTTP-Transport (Standard: 3001)
appInsightsConnectionStringApplication-Insights-Verbindungszeichenfolge für Telemetrie
projectLocationProjektstandortkennung für Telemetrie-Tracking
manageApiUrlBenutzerdefinierte Basis-URL (für Vorschauumgebungen)

🔒 Sicherheit

Indirekte Prompt-Injection

Von diesem Server zurückgegebene Inhalte (z. B. ein von einem Redakteur geschriebenes Element) können Text enthalten, den ein verbundenes LLM als Anweisungen interpretiert – indirekte Prompt-Injection. Ein gekapertes Agent könnte zu destruktiven Tool-Aufrufen (löschen / Veröffentlichung zurücknehmen / überschreiben) oder zum Offenlegen unveröffentlichter Entwürfe verleitet werden. Dies ist ein branchenweites, ungelöstes Problem, das der Server nicht zuverlässig beheben kann, indem er die zurückgegebenen Inhalte transformiert. Daher ist die Verteidigung mehrschichtig:

  • Verwenden Sie einen Management-API-Schlüssel mit minimalen Berechtigungen. Der Server arbeitet mit dem Schlüssel, der ihm übergeben wird. Mit einem Nur-Lese-Schlüssel schlägt ein destruktiver Aufruf eines kompromittierten Agents schlicht an der API-Grenze fehl – die stärkste Kontrolle, da sie unabhängig vom Modellverhalten greift.
  • Behalten Sie einen Menschen im Prozess. Jedes Werkzeug trägt MCP-Anmerkungen – Lesezugriffe sind readOnlyHint, reine Erstellungswerkzeuge sind additiv, und Werkzeuge, die Daten überschreiben oder entfernen, sind destructiveHint – die konforme Clients nutzen, um Lesezugriffe automatisch zu genehmigen und vor destruktiven Aufrufen nachzufragen. Betreiben Sie den Server mit einem solchen Client und vermeiden Sie Headless-Setups mit automatischer Genehmigung bei einem Schlüssel mit Schreibrechten.
  • Fügen Sie eine clientseitige Sperre hinzu, falls Ihr Client dies unterstützt. Einige Clients (z. B. Claude-Code-Hooks) ermöglichen es, vor der Ausführung eines destruktiven Werkzeugs deterministisch nachzufragen, unabhängig vom Modell. Dies wird lokal konfiguriert; ein Server kann es nicht erzwingen.

Dies sind Hinweise, keine Garantien. Melden Sie Sicherheitsprobleme vertraulich an security@kontent.ai.

🚀 Transportoptionen

📟 STDIO-Transport

Um den Server mit STDIO-Transport auszuführen, konfigurieren Sie Ihren MCP-Client mit:

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

🌊 Streamable-HTTP-Transport (Multi-Tenant)

Der Streamable-HTTP-Transport bedient mehrere Kontent.ai-Umgebungen von einer einzigen Serverinstanz aus. Jede Anfrage liefert Anmeldedaten über URL-Pfadparameter und Bearer-Authentifizierung.

Starten Sie zuerst den Server:

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

Erstellen Sie eine .vscode/mcp.json-Datei in Ihrem Arbeitsbereich:

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

Für eine sichere Konfiguration mit Eingabeaufforderungen:

{
  "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}"
      }
    }
  }
}
Claude Desktop

Aktualisieren Sie Ihre Claude-Desktop-Konfigurationsdatei:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Verwenden Sie mcp-remote als Proxy, um Authentifizierungsheader hinzuzufügen:

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

Fügen Sie den Server über die CLI hinzu:

claude mcp add --transport http kontent-ai-multi \
  "http://localhost:3001/<environment-id>/mcp" \
  --header "Authorization: Bearer <management-api-key>"

Hinweis: Sie können dies auch in Ihren Claude-Code-Einstellungen (JSON) mit den Eigenschaften url und headers konfigurieren.

[!IMPORTANT] Ersetzen Sie <environment-id> durch Ihre Kontent.ai-Umgebungs-ID (GUID) und <management-api-key> durch Ihren Schlüssel.

💻 Entwicklung

🛠 Lokale Installation

# Clone the repository
git clone https://github.com/kontent-ai/mcp-server.git
cd mcp-server

# Install dependencies
npm ci

# Build the project
npm run build

# Start the server
npm run start:stdio  # For STDIO transport
npm run start:shttp  # For Streamable HTTP transport

# Start the server with automatic reloading (no need to build first)
npm run dev:stdio  # For STDIO transport
npm run dev:shttp  # For Streamable HTTP transport

📂 Projektstruktur

  • src/ – Quellcode
    • tools/ – MCP-Tool-Implementierungen
    • clients/ – Einrichtung des Kontent.ai-API-Clients
    • schemas/ – Datenvalidierungsschemata
    • utils/ – Hilfsfunktionen
      • errorHandler.ts – Standardisierte Fehlerbehandlung für MCP-Tools
      • throwError.ts – Generisches Hilfsprogramm zum Auslösen von Fehlern
    • server.ts – Hauptserver-Einrichtung und Tool-Registrierung
    • bin.ts – Ein einzelner Einstiegspunkt, der beide Transporttypen verarbeitet

🔍 Debugging

Für das Debugging können Sie den MCP-Inspektor verwenden:

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

Oder verwenden Sie den MCP-Inspektor auf einem laufenden Streamable-HTTP-Server:

npx @modelcontextprotocol/inspector

Dies bietet eine Weboberfläche zum Inspizieren und Testen der verfügbaren Tools.

📦 Release-Prozess

So veröffentlichen Sie eine neue Version:

  1. Erhöhen Sie die Version mit npm version [patch|minor|major] – dies aktualisiert package.json, package-lock.json und synchronisiert mit server.json
  2. Pushen Sie den Commit in Ihren Branch und erstellen Sie einen Pull-Request
  3. Führen Sie den Pull-Request zusammen
  4. Erstellen Sie ein neues GitHub-Release mit der Versionsnummer als Name und Tag und verwenden Sie die automatisch generierten Release-Hinweise
  5. Die Veröffentlichung des Releases löst einen automatisierten Workflow aus, der in npm und die GitHub-MCP-Registry veröffentlicht

Lizenz

MIT