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, alle Inhaltstypen, Snippets, Taxonomiegruppen oder Assets in Ihrem Kontent.ai-Projekt aufzulisten.
  • Content-Modelle erstellen und ändern — Weisen Sie den Assistenten an, Inhaltstypen, Snippets und Taxonomiegruppen mithilfe dokumentierter Operationen zu erstellen oder zu patchen.
  • Content-Items und Varianten verwalten — Lassen Sie den Assistenten Content-Items und deren Sprachvarianten erstellen, aktualisieren oder abrufen, einschließlich veröffentlichter oder Entwurfsversionen.
  • Inhalte veröffentlichen und planen — Weisen Sie den Assistenten an, Content-Item-Varianten zu veröffentlichen, die Veröffentlichung aufzuheben oder zu planen und Workflow-Schritte zu verwalten.
  • Inhalte suchen und abrufen — Nutzen Sie semantische Suche, um Inhalte nach Bedeutung zu finden, oder rufen Sie gezielt bestimmte Item- und Sprachpaare in großen Mengen ab.

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 es KI-Modellen, Ihre Inhaltsstruktur zu verstehen und Operationen über Anweisungen in natürlicher Sprache durchzufü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-Konto – Registrieren, falls Sie noch kein Konto haben.
  2. Ein Projekt – Ein Projekt erstellen, um damit zu arbeiten.
  3. Management-API-Schlüssel – Einen Schlüssel erstellen mit entsprechenden Berechtigungen.
  4. Umgebungs-ID – Ihre Umgebungs-ID abrufen.

🛠 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
  • list-content-type-usages – Auflisten, wo ein Kontent.ai-Inhaltstyp verwendet wird
  • create-content-type – Neuen Kontent.ai-Inhaltstyp erstellen
  • patch-content-type – Vorhandenen Kontent.ai-Inhaltstyp nach Codename mithilfe von 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 mithilfe von Patch-Operationen aktualisieren (move, addInto, remove, replace)
  • delete-content-type-snippet – Kontent.ai-Inhaltstyp-Snippet nach ID löschen

Taxonomie-Verwaltung

  • 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 mithilfe von Patch-Operationen aktualisieren (addInto, move, remove, replace)
  • delete-taxonomy-group – Kontent.ai-Taxonomiegruppe nach ID löschen

Verwaltung von Inhaltselementen

  • get-content-item – Kontent.ai-Inhaltselement nach ID abrufen
  • get-content-item-variant – Kontent.ai-Inhaltselementvariante (Sprachversion/Übersetzung) abrufen. 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-Inhaltselementvariante abrufen. Verwenden Sie dies, wenn eine neuere Entwurfsversion vorhanden ist, Sie aber den aktuell veröffentlichten (Live-)Inhalt benötigen
  • get-content-item-translations – Alle Kontent.ai-Inhaltselementübersetzungen abrufen – jede Sprachversion (Variante) eines bestimmten Inhaltselements
  • list-content-item-variants – Kontent.ai-Inhaltselemente mit Inhaltselementvarianten (Sprachversionen/Übersetzungen) auflisten, filtern und durchsuchen
  • create-content-item – Neues Kontent.ai-Inhaltselement erstellen (erstellt nur den Container; verwenden Sie create-content-item-variant, um Sprachversionen/Übersetzungen hinzuzufügen)
  • update-content-item – Vorhandenes Kontent.ai-Inhaltselement nach ID aktualisieren. Das Inhaltselement muss bereits vorhanden sein – dieses Tool erstellt keine neuen Elemente
  • delete-content-item – Kontent.ai-Inhaltselement nach ID löschen
  • create-content-item-variant – Kontent.ai-Inhaltselementvariante 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; weggelassene werden leer initialisiert
  • update-content-item-variant – Kontent.ai-Inhaltselementvariante eines Inhaltselements aktualisieren. Elementwerte müssen die im Inhaltstyp definierten Einschränkungen und Richtlinien erfüllen. Senden Sie nur die Elemente, die Sie ändern möchten – weggelassene 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-Inhaltselementvariante erstellen. Dieser Vorgang erstellt eine neue Version einer vorhandenen Inhaltselementvariante, nützlich für Inhaltsversionierung und das Erstellen neuer Entwürfe aus veröffentlichten Inhalten
  • delete-content-item-variant – Kontent.ai-Inhaltselementvariante löschen
  • bulk-get-content-item-variants – Kontent.ai-Inhaltselemente mit ihren Inhaltselementvarianten per Stapelabruf nach Element- und Sprachreferenzpaaren abrufen. Nach list-content-item-variants verwenden, um vollständige Inhaltsdaten für bestimmte Element+Sprach-Paare abzurufen. Elemente ohne Variante in der angeforderten Sprache geben das Element ohne die Varianteneigenschaft zurück. Gibt paginierte Ergebnisse mit Fortsetzungstoken zurück
  • search-content-item-variants – KI-gestützte semantische Suche zum Finden von Inhalten nach Bedeutung und Konzepten in einer bestimmten Inhaltselementvariante. Verwenden für: konzeptionelle Suchen, wenn Sie keine genauen Schlüsselwörter kennen. Begrenzte 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 mithilfe von 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 sowohl aktive als auch 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 mithilfe von 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 legen Grenzen für Inhaltselemente in Ihrer Umgebung fest und helfen, Inhalte nach Team, Marke oder Projekt zu organisieren
  • patch-collections – Kontent.ai-Sammlungen mithilfe von Patch-Operationen aktualisieren (addInto zum Hinzufügen neuer Sammlungen, move zum Neuanordnen, remove zum Löschen leerer Sammlungen, replace zum Umbenennen)

Raumverwaltung

  • list-spaces – Alle Kontent.ai-Räume abrufen
  • create-space – Neuen Kontent.ai-Raum zur Verwaltung einer Website oder eines Kanals erstellen
  • patch-space – Kontent.ai-Raum mithilfe von Replace-Operationen patchen
  • delete-space – Kontent.ai-Raum 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 keinen Inhaltselementen verwendet werden
  • change-content-item-variant-workflow-step – Den Workflow-Schritt einer Inhaltselementvariante in Kontent.ai ändern. Dieser Vorgang verschiebt eine Inhaltselementvariante 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 Inhaltselementvariante eines Inhaltselements in Kontent.ai veröffentlichen oder planen. Dieser Vorgang kann die Variante entweder sofort veröffentlichen oder für ein bestimmtes zukünftiges Datum und eine bestimmte Uhrzeit mit optionaler Zeitzonenangabe planen
  • unpublish-content-item-variant – Die Veröffentlichung einer Inhaltselementvariante eines Inhaltselements in Kontent.ai aufheben oder die Aufhebung planen. Dieser Vorgang kann die Variante entweder sofort zurückziehen (sodass sie über die Delivery-API nicht mehr verfügbar ist) oder die Rücknahme für ein bestimmtes zukünftiges Datum und eine bestimmte Uhrzeit mit optionaler Zeitzonenangabe planen
  • cancel-scheduled-publishing-content-item-variant – Die geplante Veröffentlichung einer Inhaltselementvariante in Kontent.ai abbrechen. Dieser Vorgang 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 seinen Transport gebunden sind:

TransportModusAuthentifizierungAnwendungsfall
STDIOEinzelmandantenfähigUmgebungsvariablenLokale Kommunikation mit einer einzelnen Kontent.ai-Umgebung
Streamable HTTPMehrbenutzerfähigBearer-Token pro AnfrageRemote-/gemeinsamer Server, der mehrere Umgebungen verarbeitet

Einzelmandanten-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)❌

Mehrbenutzer-Modus (Streamable HTTP)

Für den 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.

KONTENT_API_KEY und KONTENT_ENVIRONMENT_ID werden bei diesem Transport ignoriert, selbst wenn sie zufällig in der Umgebung des Servers festgelegt sind. Jede Anfrage muss ihre eigenen Anmeldeinformationen mit sich führen; eine Anfrage ohne diese wird abgelehnt und nicht mit den Anmeldeinformationen des Servers bedient.

VariableBeschreibungErforderlich
PORTPort für den 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ückziehen / Überschreiben) oder zum Leaken unveröffentlichter Entwürfe verleitet werden. Dies ist ein branchenweites, ungelöstes Problem, das der Server nicht zuverlässig beheben kann, indem er die von ihm zurückgegebenen Inhalte transformiert. Daher ist die Verteidigung mehrschichtig:

  • Verwenden Sie einen Management-API-Schlüssel mit geringsten Rechten. Der Server agiert mit dem Schlüssel, der ihm gegeben wird. Mit einem Nur-Lese-Schlüssel schlägt ein destruktiver Aufruf eines gekaperten Agents einfach an der API-Grenze fehl — die stärkste Kontrolle, da sie unabhängig vom Modellverhalten gilt.
  • Behalten Sie einen Menschen im Prozess. Jedes Tool trägt MCP-Anmerkungen — Lesevorgänge sind readOnlyHint, Nur-Erstellen-Tools sind additiv, und Tools, die Daten überschreiben oder entfernen, sind destructiveHint — die konforme Clients verwenden, um Lesevorgänge automatisch zu genehmigen und vor destruktiven Aufrufen eine Eingabeaufforderung zu zeigen. Führen Sie den Server mit einem solchen Client aus und vermeiden Sie Headless-Auto-Approve-Setups mit einem schreibfähigen Schlüssel.
  • Fügen Sie ein clientseitiges Gate hinzu, wenn Ihr Client eines unterstützt. Einige Clients (z. B. Claude Code Hooks) ermöglichen es Ihnen, deterministisch vor der Ausführung eines destruktiven Tools eine Eingabeaufforderung zu zeigen, unabhängig vom Modell. Dies wird lokal konfiguriert; ein Server kann es nicht erzwingen.

Dies sind Hinweise, keine Garantien. Melden Sie Sicherheitsprobleme privat 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 stellt Anmeldeinformationen über URL-Pfadparameter und Bearer-Authentifizierung bereit.

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 als 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-Toolimplementierungen
    • clients/ - Kontent.ai-API-Client-Setup
    • schemas/ - Datenvalidierungsschemata
    • utils/ - Hilfsfunktionen
      • errorHandler.ts - Standardisierte Fehlerbehandlung für MCP-Tools
      • throwError.ts - Generisches Dienstprogramm zum Auslösen von Fehlern
    • app.ts - Express-App-Factory für den Streamable-HTTP-Transport
    • server.ts - Hauptserver-Setup und Tool-Registrierung
    • bin.ts - Einzelner Einstiegspunkt, der beide Transporttypen behandelt

🔍 Debugging

Zum 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

Um eine neue Version zu veröffentlichen:

  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. Mergen Sie den Pull-Request
  4. Erstellen Sie ein neues GitHub-Release mit der Versionsnummer als Name und Tag, unter Verwendung der automatisch generierten Release-Notizen
  5. Die Veröffentlichung des Releases löst einen automatisierten Workflow aus, der auf npm und das GitHub-MCP-Registry veröffentlicht

Lizenz

MIT