CommunityCodierung & Entwicklunggithub.com

Headless CMS MCP Pipeline

Verwaltet und orchestriert Headless CMS-Inhalte (WordPress) über Model Context Protocol (MCP)-Werkzeuge.

Was ist Headless CMS MCP Pipeline?

Diese Fähigkeit befähigt KI-Agenten (wie Hermes), einen vollständig autonomen Content-Pipeline für Headless WordPress über MCP zu orchestrieren. Sie kümmert sich um alles von der Themenaufnahme und redaktionellen Richtlinien bis hin zur Erstellung von Artikeln, Bildgenerierung und SEO-Prüfung – alles ohne langlaufende synchrone KI-Aufrufe im CMS. Die Pipeline erzwingt eine strikte Trennung von Inhaltstypen (Beiträge vs. Seiten), spezielle Seitenrollen (Lead Magnets, rechtliche Seiten) und dynamische Navigationsmenüs, die über die WordPress-Datenbank gesteuert werden. Entwickler erhalten einen klaren, reproduzierbaren 10-Schritte-Workflow, der Faktenprüfung, semantische RAG-Suche zur Vermeidung von Kannibalisierung und die Einhaltung von Marken- und redaktionellen Richtlinien integriert. Die Fähigkeit unterstützt die Plugins Sayoti Content Engine und Sayoti Headless Bridge und stellt sicher, dass die Geheimnisse streng über Umgebungsvariablen verwaltet werden.

Funktioniert mit✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/imadegunawinangun/skill-headless-cms-mcp-pipeline/tree/HEAD

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Vorschau

Aus dem Skill-README

Headless CMS MCP Pipeline preview

Dokumentation

Headless CMS MCP Content Pipeline

Verwendungszweck

  • Verwalten, Verfassen oder Veröffentlichen von Blogbeiträgen und Seiten auf Headless WordPress über das Model Context Protocol (MCP).
  • Orchestrieren von autonomen KI-Artikelgenerierungs-Pipelines gegen ein Next.js-Headless-Frontend.
  • Verbinden externer KI-Agenten mit Sayoti Suite MCP RPC (/wp-json/sayoti-mcp/v1/rpc).
  • Synchronisieren von redaktionellen Standards, der Borderline-Matrix, klinischen E-E-A-T-Regeln und Markenrichtlinien zwischen CMS und KI-Agent.
  • Konfigurieren von dynamischen Headless-Navigationsmenüs, On-Page-Fokus-Keyword-Audits und spezialisierten Seitenrollen (Lead Magnets, Datenschutzerklärung, AGB).

Voraussetzungen & Zero-Secret-Richtlinie

⚠️ Strenger Credential-Schutz (Zero Secret Leakage)

  • NIEMALS API-Schlüssel, Passwörter oder Bearer-Token in SKILL.md oder git-verfolgten Dateien hartcodieren.
  • Alle Anmeldeinformationen müssen strikt aus Umgebungsvariablen in $HERMES_HOME/.env oder Profil-spezifischen .env-Dateien aufgelöst werden.
  • Für diese Pipeline erforderliche Anmeldeinformationen:
    1. MCP_SAYOTI_CMS_KEY: Der geheime Masterschlüssel für die WordPress MCP RPC-Authentifizierung (headers: {'X-Sayoti-Key': '${MCP_SAYOTI_CMS_KEY}'}).
    2. HERMES_CUSTOM_9ROUTER_SAYOTI_MY_ID_API_KEY oder NINEROUTER_API_KEY: Der API-Schlüssel für das 9Router-Multi-Modell-Gateway (image_generate und Embeddings).
  • WordPress MCP Server-Konfiguration (in config.yaml unter mcp_servers):
    mcp_servers:
      sayoti-cms:
        url: "http://wordpress-sentra/wp-json/sayoti-mcp/v1/rpc"
        headers:
          X-Sayoti-Key: "${MCP_SAYOTI_CMS_KEY}"
        enabled: true
        timeout: 180
    
  • Voraussetzung für Vektordatenbank:
    • In der WordPress-Administration (sayoti_mcp_settings) muss embedding_status auf enabled gesetzt sein mit dem Modell local/nomic-embed-text, um rag_search und automatische Beitragsindizierung zu unterstützen.

Architekturprinzipien

  1. WordPress als reiner Datenspeicher (Zero Timeout):

    • WordPress darf während REST/MCP-Anfragen niemals langlaufende synchrone KI-Aufrufe (LLM-Generierung, Diffusionsmodelle) ausführen.
    • Der KI-Agent (Hermes) fungiert als Ausführungs-Engine: Er recherchiert, erstellt Entwürfe, generiert Bilder über 9Router und bettet Medien ein, bevor er Daten an das CMS sendet.
    • CMS-Operationen (save_post, save_page) müssen als reine schnelle Datenbanktransaktionen (< 1 Sekunde) ausgeführt werden und die Next.js On-Demand-ISR-Revalidierung auslösen.
  2. Strenge Entitätstrennung via Upsert:

    • Verwenden Sie immer dedizierte Upsert-Werkzeuge für verschiedene Inhaltseinheiten: save_post für Blogartikel und save_page für statische/Landingpages.
    • Kombinieren Sie Beiträge und Seiten nicht zu einem einzigen generischen Werkzeug mit Bedingungsparametern; unterschiedliche Schemata eliminieren Parameterlecks und LLM-Halluzinationen.
    • Upsert-Logik: Wenn eine id oder ein passender slug vorhanden ist, führen Sie ein Update durch; wenn nicht, erstellen Sie neue Inhalte.
  3. Spezialisierte Seitenrollen & Lead-Magnet-Klassifizierung:

    • Seiten erfüllen bestimmte kommerzielle oder rechtliche Rollen im Trichter: standard, lead_magnet, privacy_policy, terms_of_service oder disclaimer.
    • Lassen Sie Lead-Magnet-Seiten niemals mehrdeutig. Klassifizieren Sie immer page_role: 'lead_magnet' und geben Sie den genauen Asset-Typ über lead_magnet_type an (z.B. "Checklist Meilenstein Entwicklung 2–7 Jahre (PDF)").
    • Das CMS macht diese über /wp-json/sayoti/v1/site-settings verfügbar und registriert Statusabzeichen ([🎁 LEAD MAGNET: ...], [🔒 PRIVACY POLICY], [📜 TERMS OF SERVICE]) in der WordPress-Administration, damit menschliche Redakteure die Seitenfunktionen sofort erkennen.
  4. Dynamische Headless-Navigationsmenüs:

    • Menüs dürfen niemals im Frontend hartcodiert sein. WordPress ist die einzige Quelle der Wahrheit über /wp-json/sayoti/v1/menus?location=primary und footer.
    • Das Aktualisieren von Menüs in der WP-Admin (Design -> Menüs) löst einen ISR-Revalidierungs-Webhook mit dem Tag menu und dem Pfad / aus, wodurch der Next.js-Header und -Footer ohne erneutes Bereitstellen sofort aktualisiert werden.
    • Seedn Sie beim ersten Start immer automatisch die Standard-Navigationsmenüs, damit das WP-Admin-Dashboard sofort ein sauberes, sofort bearbeitbares Menü hat.
  5. Einzige Quelle der Wahrheit für redaktionelle & visuelle Regeln:

    • Redaktionelle Regeln (content.md), E-E-A-T-Standards (sayoti-editorial.md), Marken-Visualregeln (sayoti-visual-branding.md) und On-Page-SEO-Keyword-Regeln befinden sich in WordPress-Datenbankoptionen.
    • Der Agent ruft diese Regeln dynamisch über get_editorial_guidelines ab, sodass die Ausgaben zu 100 % mit der Dashboard-internen Generierung übereinstimmen.
  6. Entkoppelte 2-Plugin-Architektur (Universeller Inhalt vs. Headless-Brücke):

    • Koppeln Sie niemals KI, Topic-Cluster und MCP-Server an die Headless-Weiterleitungslogik. Ein monolithisches Plugin bricht, wenn ein Client bereits ein aktives WordPress-Theme (Astra, Elementor, Divi) hat und nur die KI/SEO-Engine möchte.
    • Trennen Sie in zwei saubere, unabhängige Plugins:
      • sayoti-content-engine: Universell & Theme-agnostisch. Enthält MariaDB 11.8 Vector RAG, Topic-Cluster (Hub & Spoke), Link-Explorer, automatische Dead-Link-Reparatur, Dashboard-internen KI-Autor, Lead-Magnet-CPT & CRM und MCP-Server (/wp-json/sayoti-mcp/v1/rpc). Keine Weiterleitungen, keine Next.js-Abhängigkeiten. Funktioniert auf JEDER bestehenden WordPress-Installation.
      • sayoti-headless-bridge: Wird nur installiert, wenn ein Headless Next.js-Frontend verwendet wird. Enthält 301-Weiterleitungen (mit konfigurierbarem Schalter), REST /site-settings und /menus, ISR-Revalidierungs-Webhooks, Seiten-Controller (Startseite & rechtliche Rollen) und dynamische Marketing-Tracking-Tags (GTM, Meta Pixel, TikTok, Ads) mit Local SEO-Schema (Google Maps & Geschäftsadresse).

Umfassender 10-Schritte-Artikelgenerierungs-Workflow

[Benutzer-Themen-Prompt]
        ↓ 1. Aufgabe erfassen
[WordPress MCP: get_topic_cluster & get_editorial_guidelines]
        ↓ 2. Pillar-Taxonomie & redaktionelle Richtlinien abrufen
[Agent (Hermes): Fokus-Keyword & Blickwinkel]
        ↓ 3. Fokus-Keyword & spezifischen Blickwinkel formulieren
[WordPress MCP: rag_search]
        ↓ 4. Semantische Kannibalisierung (>80%) prüfen & interne Link-Kandidaten abrufen
[Web-Recherche: Universelle 4-stufige Zitierhierarchie]
        ↓ 5. Fakten prüfen & Behauptungen untermauern
[Agency-Agents: content-creator]
        ↓ 6. Spezialisierte Schreib-Persona laden
[Inhaltserstellung: Gutenberg-nativ]
        ↓ 7. 900-1500 Wörter semantisches HTML entwerfen (Hook, H2s, Hub-Link, FAQ, CTA, Haftungsausschluss)
[9Router image_generate + MCP upload_media]
        ↓ 8. Bild-Assets mit adaptivem Wasserzeichen sideloaden (Zero-Timeout)
[WordPress MCP: save_post]
        ↓ 9. Sofortige Datenbanktransaktion + automatische Vektorindizierung + Next.js ISR
[WordPress MCP: audit_post_seo]
        ↓ 10. SEO-Score prüfen (Ziel 80-100%) & Live-Bericht ausliefern
[Live auf Vercel Next.js]

Schritt 1: Thema & Kontext erfassen

Erhalten Sie die erste Inhaltsanfrage vom Benutzer oder Redaktionskalender. Identifizieren Sie die Schmerzpunkte der Zielgruppe und die kommerzielle Absicht.

Schritt 2: Richtlinien & Taxonomien abrufen

Rufen Sie sayoti-cms-Werkzeuge auf, um strukturelle Grenzen festzulegen:

  1. get_topic_cluster: Untersuchen Sie verfügbare Kategorie-Pillars und rufen Sie den offiziellen Primären Hub (Beitrags-ID, Titel, Slug) für die beabsichtigte Kategorie ab.
  2. get_editorial_guidelines: Rufen Sie die aktiven redaktionellen Längenbeschränkungen (900–1.500 Wörter), die obligatorische Einstiegsanatomie, FAQ-Akkordeon-Regeln, das Aktionsframework und die offiziellen Hex-Farbpaletten ab.

Schritt 3: Tiefgehende Fokus-Keyword-Recherche & Blickwinkel-Formulierung

  • Suchabsicht & Keyword-Recherche: Wählen Sie NICHT einfach einen zufälligen Begriff ohne Recherche. Recherchieren Sie aktiv realistisches Suchverhalten und die Fragen der im Profil definierten Zielgruppe (Informationsfragen, Probleme oder vergleichende Untersuchungen über Websuche / Keyword-Muster).
  • Primäres Fokus-Keyword auswählen: Legen Sie basierend auf den Rechercheergebnissen genau 1 Primäres Fokus-Keyword mit klarer Long-Tail-Suchabsicht fest (z.B. "cara melatih anak speech delay 2 tahun mandiri" anstelle von breiten, generischen Hauptbegriffen).
  • Scharfen & einzigartigen Blickwinkel definieren: Verankern Sie das gewählte Keyword mit einem unverwechselbaren Blickwinkel (z.B. spezifischer Altersübergang, realistische tägliche Heimroutinen oder konkrete, innerhalb von ≤24 Stunden anwendbare Schritte).
  • Single-URL-Zuordnung: Garantieren Sie, dass dieses Fokus-Keyword streng einer einzigen eindeutigen URL gewidmet ist, um zukünftige Keyword-Konkurrenz zu vermeiden.

Schritt 4: Semantische RAG-Überprüfung & Kannibalisierungs-Check

Führen Sie rag_search(query: "<Fokus-Keyword> <Blickwinkel>", limit: 5) aus:

  1. Kannibalisierungsfilter: Wenn ein veröffentlichter Artikel >80% semantische Ähnlichkeit beim gleichen Blickwinkel aufweist, passen Sie den Blickwinkel sofort an (z.B. von allgemeinen Symptomen zu Heimroutinen oder spezifischen Meilenstein-Übergängen).
  2. Horizontale Verlinkungsentdeckung: Notieren Sie relevante bestehende Artikel, die von der Vektorsuche zurückgegeben werden, um als kontextuelle interne Links zu dienen.

Schritt 5: Mehrstufige Zitierrecherche (Universelle 4-stufige Hierarchie)

Untermauern Sie alle sachlichen Behauptungen mit der Universal Evidence Hierarchy:

  • Stufe 1 (Primäre gesetzliche & wissenschaftliche Autoritäten - Goldstandard): Offizielle klinische Vereinigungen (IDAI, Himpsi, PPHI, WHO, CDC, AAP), staatliche Gesundheitsrichtlinien und Peer-Review-Journale. Verpflichtend für Altersmeilenstein-Zahlen, klinische Definitionen und medizinische Behauptungen.
  • Stufe 2 (Renommierte Sekundär- & Industrieforschung): Glaubwürdige Nachrichtenagenturen (Kompas, Antara, BBC) und institutionelle Whitepapers für Makrotrends.
  • Stufe 3 (Beobachtungs- & Feldstimmung): Echte Zielgruppen-/Nutzerprobleme, Praktiker-Feldnotizen und Community-Diskussionen. Verwenden Sie diese, um einfühlsame Einstiegs-Hooks zu gestalten. Kennzeichnen Sie sie immer als Stimmung oder praktische Feldbeobachtung, niemals als normative gesetzliche oder klinische Tatsache.
  • Stufe 4 (Verboten): Content-Farmen, nicht gekennzeichnete SEO-Blogs und KI-Neuaufbereitungen ohne primäre Links. Niemals zitieren.

Schritt 6: Spezialisierte Persona laden

Rufen Sie agency_agents_load(agent="content-creator") (oder den entsprechenden Agency-Spezialisten) auf und wenden Sie den durch die SOUL.md des aktiven Profils vorgegebenen Kommunikationston an.

Schritt 7: Vollständiges semantisches HTML entwerfen (Gutenberg-nativ)

Verfassen Sie 900–1.500 Wörter semantisches HTML mit nativen WordPress-Gutenberg-Block-Kommentaren (<!-- wp:paragraph -->, <!-- wp:heading -->, <!-- wp:separator -->, <!-- wp:list -->):

  1. Einzelnes H1: Wird von der Seitenvorlage behandelt; beginnen Sie den Body direkt mit einleitenden Absätzen.
  2. 3-Absatz-Einstiegsanatomie:
    • Absatz 1 (Der Hook): Realistisches Szenario, das die Probleme der Zielgruppe bestätigt (abgeleitet aus Stufe-3-Erkenntnissen).
    • Absatz 2 (Schnelle Antwort): Natürliche, beruhigende direkte Antwort (keine starre "Schnelle Antwort:"-Beschriftung).
    • Absatz 3 (Übergang): Warme Einladung, Lösungen gemeinsam zu erkunden.
  3. Ausarbeitung pro H2: 3 bis 5 umfassende Absätze pro Überschrift, die praktische Heimstimulationsschritte (≤24 Stunden) integrieren.
  4. Integration interner Links:
    • Vertikal (Pflicht): Natürlicher kontextueller Link zurück zum Primären Hub in den ersten 300–500 Wörtern: <a href="/posts/<hub-slug>" class="text-primary font-semibold underline hover:text-accent">...</a>.
    • Horizontal: Kontextueller Link zu verwandten Spoke-Artikeln, die in Schritt 4 entdeckt wurden.
  5. Callout-Karte-Kontrastregel: Besondere Hinweise müssen <div class="my-8 rounded-2xl border-2 border-primary/25 bg-card p-6 sm:p-8 shadow-sm"> mit Titeln in text-primary font-bold oder text-foreground font-bold verwenden. Verwenden Sie niemals text-secondary auf hellen Karten.
  6. Schlusssequenz:
    • <h2>Fazit &amp; Beste Begleitmaßnahmen</h2>: Zusammenfassung mit 3 Aktionslinks (/lernmethoden, /meilenstein-checkliste, /kontakt oder direktes WhatsApp).
    • <h2>Häufig gestellte Fragen von Eltern (FAQ)</h2>: Mindestens 5 Fragen, formatiert als <details class="faq-accordion mb-4 rounded-xl border border-border p-4 bg-card transition-all"><summary class="cursor-pointer font-semibold text-foreground flex items-center justify-between"><span>...</span><span class="text-primary font-bold ml-2">+</span></summary><div class="mt-3 text-sm text-foreground/80 leading-relaxed border-t border-border pt-3">...</div></details>. Platziert VOR dem Haftungsausschluss.
    • Verbindlicher klinischer Haftungsausschluss: <div class="my-6 rounded-xl border border-border bg-muted/30 p-4 text-xs italic text-muted-foreground leading-relaxed">Hinweis: Die Informationen in diesem Leitfaden dienen ausschließlich zu Bildungszwecken, um die selbstständige Stimulation zu Hause zu unterstützen, und ersetzen keine direkte Beurteilung und medizinische Empfehlungen durch einen Kinderarzt oder professionellen Therapeuten.</div>
    • <h2>Referenzen</h2>: <ol>-Liste mit verifizierten Quellen, einschließlich anklickbarer vollständiger https://-URLs, die mit den Inline-Zitaten übereinstimmen.
  7. 7 On-Page-SEO-Kriterien: Fokus-Keyword vorhanden im Titel, Permalink-Slug, den ersten 100 Wörtern, mindestens einem H2/H3, Auszug und Dichte zwischen 0,5 % und 2,0 % beibehalten.

Schritt 8: Bilderzeugung & Medien-Sideloading (Zero Timeout)

  1. Generieren Sie ein Bild über image_generate (9Router), wobei die offiziellen Marken-Hex-Farben und eine strenge anti_text_rule (kein Text/Zahlen/Wasserzeichen auf der Leinwand) erzwungen werden.
  2. Laden Sie das Bild über das MCP-Werkzeug upload_media hoch:
    • Übergeben Sie image_url oder image_base64.
    • Übergeben Sie apply_watermark: true für das Beitragsbild (stempelt automatisch adaptiv das Markenlogo via PHP GD) und apply_watermark: false für H2-Körper-Illustrationen.
    • Das Werkzeug gibt die offizielle id (Anhangs-ID) und url auf der CMS-Domain zurück (https://cms...), zu 100 % konform mit Next.js Vercel remotePatterns.
  3. Betten Sie In-Artikel-Bilder direkt in <figure class="wp-block-image size-large"><img src="..." alt="..." /><figcaption>...</figcaption></figure>-Blöcke ein.

Schritt 9: Sofort veröffentlichen (save_post)

Rufen Sie save_post auf mit:

  • title, slug, content, category_id, focus_keyword, excerpt.
  • featured_media_id: Setzen Sie dies auf die id des Anhangs, der von upload_media in Schritt 8 zurückgegeben wurde.
  • generate_featured_image: false und generate_in_article_images: false (umgeht die serverseitige synchrone Bildgenerierung; wird als sofortiger DB-Schreibvorgang <1 Sekunde ausgeführt, wodurch Timeout-Risiken vollständig eliminiert werden).
  • WordPress automatisch:
    1. Speichert den Beitrag und aktualisiert die SEO-Meta-Felder.
    2. Löst die Next.js On-Demand-ISR-Revalidierung aus.
    3. Indiziert Beitrags-Chunks in die MariaDB-Vektoreinbettungstabelle (wp_sayoti_vectors).

Schritt 10: SEO-Audit & Endbericht

  1. Rufen Sie audit_post_seo(post_id: <id>) auf

Verwandte Skills