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.mdoder git-verfolgten Dateien hartcodieren. - Alle Anmeldeinformationen müssen strikt aus Umgebungsvariablen in
$HERMES_HOME/.envoder Profil-spezifischen.env-Dateien aufgelöst werden. - Für diese Pipeline erforderliche Anmeldeinformationen:
MCP_SAYOTI_CMS_KEY: Der geheime Masterschlüssel für die WordPress MCP RPC-Authentifizierung (headers: {'X-Sayoti-Key': '${MCP_SAYOTI_CMS_KEY}'}).HERMES_CUSTOM_9ROUTER_SAYOTI_MY_ID_API_KEYoderNINEROUTER_API_KEY: Der API-Schlüssel für das 9Router-Multi-Modell-Gateway (image_generateund Embeddings).
- WordPress MCP Server-Konfiguration (in
config.yamluntermcp_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) mussembedding_statusaufenabledgesetzt sein mit dem Modelllocal/nomic-embed-text, umrag_searchund automatische Beitragsindizierung zu unterstützen.
- In der WordPress-Administration (
Architekturprinzipien
-
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.
-
Strenge Entitätstrennung via Upsert:
- Verwenden Sie immer dedizierte Upsert-Werkzeuge für verschiedene Inhaltseinheiten:
save_postfür Blogartikel undsave_pagefü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
idoder ein passenderslugvorhanden ist, führen Sie ein Update durch; wenn nicht, erstellen Sie neue Inhalte.
- Verwenden Sie immer dedizierte Upsert-Werkzeuge für verschiedene Inhaltseinheiten:
-
Spezialisierte Seitenrollen & Lead-Magnet-Klassifizierung:
- Seiten erfüllen bestimmte kommerzielle oder rechtliche Rollen im Trichter:
standard,lead_magnet,privacy_policy,terms_of_serviceoderdisclaimer. - Lassen Sie Lead-Magnet-Seiten niemals mehrdeutig. Klassifizieren Sie immer
page_role: 'lead_magnet'und geben Sie den genauen Asset-Typ überlead_magnet_typean (z.B."Checklist Meilenstein Entwicklung 2–7 Jahre (PDF)"). - Das CMS macht diese über
/wp-json/sayoti/v1/site-settingsverfügbar und registriert Statusabzeichen ([🎁 LEAD MAGNET: ...],[🔒 PRIVACY POLICY],[📜 TERMS OF SERVICE]) in der WordPress-Administration, damit menschliche Redakteure die Seitenfunktionen sofort erkennen.
- Seiten erfüllen bestimmte kommerzielle oder rechtliche Rollen im Trichter:
-
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=primaryundfooter. - Das Aktualisieren von Menüs in der WP-Admin (Design -> Menüs) löst einen ISR-Revalidierungs-Webhook mit dem Tag
menuund 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.
- Menüs dürfen niemals im Frontend hartcodiert sein. WordPress ist die einzige Quelle der Wahrheit über
-
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_guidelinesab, sodass die Ausgaben zu 100 % mit der Dashboard-internen Generierung übereinstimmen.
- Redaktionelle Regeln (
-
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-settingsund/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:
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.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:
- 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).
- 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 -->):
- Einzelnes H1: Wird von der Seitenvorlage behandelt; beginnen Sie den Body direkt mit einleitenden Absätzen.
- 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.
- Ausarbeitung pro H2: 3 bis 5 umfassende Absätze pro Überschrift, die praktische Heimstimulationsschritte (≤24 Stunden) integrieren.
- 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.
- Vertikal (Pflicht): Natürlicher kontextueller Link zurück zum Primären Hub in den ersten 300–500 Wörtern:
- 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 intext-primary font-boldodertext-foreground font-boldverwenden. Verwenden Sie niemalstext-secondaryauf hellen Karten. - Schlusssequenz:
<h2>Fazit & Beste Begleitmaßnahmen</h2>: Zusammenfassung mit 3 Aktionslinks (/lernmethoden,/meilenstein-checkliste,/kontaktoder 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ändigerhttps://-URLs, die mit den Inline-Zitaten übereinstimmen.
- 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)
- Generieren Sie ein Bild über
image_generate(9Router), wobei die offiziellen Marken-Hex-Farben und eine strengeanti_text_rule(kein Text/Zahlen/Wasserzeichen auf der Leinwand) erzwungen werden. - Laden Sie das Bild über das MCP-Werkzeug
upload_mediahoch:- Übergeben Sie
image_urloderimage_base64. - Übergeben Sie
apply_watermark: truefür das Beitragsbild (stempelt automatisch adaptiv das Markenlogo via PHP GD) undapply_watermark: falsefür H2-Körper-Illustrationen. - Das Werkzeug gibt die offizielle
id(Anhangs-ID) undurlauf der CMS-Domain zurück (https://cms...), zu 100 % konform mit Next.js VercelremotePatterns.
- Übergeben Sie
- 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 dieiddes Anhangs, der vonupload_mediain Schritt 8 zurückgegeben wurde.generate_featured_image: falseundgenerate_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:
- Speichert den Beitrag und aktualisiert die SEO-Meta-Felder.
- Löst die Next.js On-Demand-ISR-Revalidierung aus.
- Indiziert Beitrags-Chunks in die MariaDB-Vektoreinbettungstabelle (
wp_sayoti_vectors).
Schritt 10: SEO-Audit & Endbericht
- Rufen Sie
audit_post_seo(post_id: <id>)auf