=== WP-LIT-MCP === Contributors: loosenit Tags: mcp, claude, divi, pods, ai Requires at least: 6.9 Tested up to: 7.0 Requires PHP: 8.1 Stable tag: 0.3.0 License: GPL-2.0-or-later License URI: https://www.gnu.org/licenses/gpl-2.0.html MCP-Server für WordPress, Divi 5 und Pods – mit OAuth für claude.ai. == Description == WP-LIT-MCP stellt einen MCP-Server bereit, über den Claude (claude.ai-Connector) diese Website pflegt: Inhalte aller Inhaltstypen inkl. Pods-Feldern, Status, Kopien, Revisionen, Menüs, freigegebene WordPress-Einstellungen und die Mediathek. Jede Änderung läuft mit den Rechten des verbundenen WordPress-Benutzers und wird protokolliert. Einstellungen: Einstellungen → LIT MCP (Verbindung, Zugriff, Tools, Protokoll, Limits). == Auswirkungen auf die gesamte Website == * Der Standard-MCP-Server von wordpress/mcp-adapter (REST-Route /wp-json/mcp/mcp-adapter-default-server) wird abgeschaltet (Filter mcp_adapter_create_default_server). Andere Plugins, die diesen ungeschützten Server erwarten, finden ihn nicht mehr. * Es gibt genau einen MCP-Endpunkt: /wp-json/mcp/mcp-oauth-server (OAuth 2.1 über die eingebundene Bibliothek wp-media/mcp-oauth). Anfragen ohne gültiges Token erhalten 401 mit WWW-Authenticate. * mcp-oauth registriert Rewrite-Regeln für /oauth/… und /.well-known/oauth-… sowie einen Website-Zustand-Test. Der Webserver muss /.well-known/ an WordPress durchreichen (bei nginx-Regeln, die Punkt-Pfade sperren, eine Ausnahme für /.well-known/ anlegen). * Jede Verbindung ist ein Anwendungspasswort des Benutzers (Name = Client, z. B. „Claude“). Es ist im Benutzerprofil sichtbar und unter Einstellungen → LIT MCP → Zugriff widerrufbar. * Die Capability lit_mcp_use wird zur Laufzeit an die freigegebenen Rollen vergeben; Rollen in der Datenbank werden nicht verändert. Nicht freigegebene Benutzer sehen beim Verbinden weder die Werkzeugliste noch Angaben zur Website – nur den Hinweis, dass ihr Konto nicht freigegeben ist. * Welche Werkzeuge direkt sichtbar, nur über die Meta-Werkzeuge erreichbar oder abgeschaltet sind, lässt sich unter Einstellungen → LIT MCP → Tools ändern. * Eigene Daten: Optionen lit_mcp_allowed_roles, lit_mcp_exposure, lit_mcp_limits, lit_mcp_db_version, Tabelle {prefix}lit_mcp_log (nur Verweise, keine Inhalte), täglicher Cron-Job lit_mcp_log_cleanup, Transient lit_mcp_endpoint_check. * Divi-Änderungen über LIT MCP speichern den Seiteninhalt für Benutzer ohne die Berechtigung unfiltered_html ohne die kses-Filterung von WordPress, weil diese sonst jeden unveränderten Divi-Block neu schreiben würde. Alle Werte, die LIT MCP dabei schreibt, werden vorher bereinigt (wp_kses_post, sanitize_text_field, esc_url_raw); $variable-Verweise werden geparst, geprüft und vom Plugin neu erzeugt. Inhalte des Code-Moduls bleiben nur mit unfiltered_html ungefiltert; eigenes HTML, CSS und HTML-Attribute von Modulen schreibt LIT MCP nur für Benutzer mit unfiltered_html. Divis eigene Speicherfilter bleiben aktiv. * Unberührte Teile einer Divi-Seite bleiben beim Speichern byte-identisch. Ausnahme: Divi selbst normalisiert Seiten mit eigenen HTML-/Attribut-Feldern beim Speichern, sofern sie noch nicht in Divis eigener gespeicherter Form vorliegen (z. B. importierter Inhalt); über den Divi-Builder oder LIT MCP gespeicherte Seiten betrifft das praktisch nie (die Antwort warnt dann, dass der Inhalt beim Speichern verändert wurde). * Nach jeder Divi-Änderung wird der statische CSS-Cache von Divi für die Seite geleert. * Uploads über LIT MCP: nur Bilder (jpg, png, gif, webp, avif), PDF, MP4, MP3; Größenlimit einstellbar (Standard 5 MB, höchstens 32 MB; Base64-Upload und Download höchstens 10 MB); Import per URL nur von öffentlich erreichbaren Adressen (interne/lokale Adressen werden abgelehnt). == Filter für Entwickler == * lit_mcp_allowed_roles – Liste der freigegebenen Rollen (nach der Einstellung unter Zugriff). * lit_mcp_upload_mimes – erlaubte Dateitypen für Uploads (Endungen => MIME-Typ); wirksam ist nur, was WordPress dem Benutzer ohnehin erlaubt. * lit_mcp_guides – eigene Anleitungen für lit-guide (Thema => Markdown). * lit_mcp_excluded_post_types – Inhaltstypen, die LIT MCP nicht anzeigt und nicht bearbeitet. == Rückgängig machen == Es gibt keine allgemeine "Rückgängig"-Funktion; was sich wie zurücksetzen lässt, hängt vom Werkzeug ab: * Inhalte (Titel, Text, Auszug): über WordPress-Revisionen (Werkzeuge lit/revisions-list, lit/revision-restore). Felder und Begriffe sind in Revisionen nicht enthalten. * Divi-Seiten: jede Divi-Änderung legt vorher eine Revision an (revision_id in der Antwort); zurück über lit/revision-restore. Beim seitenübergreifenden Ersetzen erhält jede geänderte Seite eine eigene Revision. * Original durch eine Kopie ersetzen (lit/post-replace-with-copy): vorher legt das Werkzeug eine Revision und eine vollständige Sicherung des bisherigen Originals im Papierkorb an (backup_id in der Antwort) – von dort in WordPress wiederherstellbar. * Medien löschen (lit/media-delete): ohne aktivierten Medien-Papierkorb (WordPress-Standard, Konstante MEDIA_TRASH in wp-config.php) endgültig und nicht rückgängig zu machen; mit aktiviertem Medien-Papierkorb landet das Medium dort. * Menüs (lit/menu-set-items): die Antwort enthält previous_items (Stand vorher), mit dem sich der vorherige Baum nachbauen lässt – neu angelegte Einträge bekommen dabei eine neue ID, CSS-Klassen, Linkziel und Beschreibung gehen verloren. * WordPress-Einstellungen (lit/wp-settings-update): die Antwort enthält previous mit den alten Werten. * Alle genannten Änderungen stehen zusätzlich im Änderungsprotokoll (Einstellungen → LIT MCP → Protokoll), das bei Inhalten, Medien und Menüs auf den passenden Bearbeiten-/Revisions-/Mediathek-Link verweist. * Alles andere (z. B. neu angelegte Entwürfe, hochgeladene Medien, neue Menüs) lässt sich nur über die üblichen WordPress-Wege rückgängig machen (Papierkorb, manuelles Löschen) – nicht über ein eigenes Undo-Werkzeug von LIT MCP. == Deaktivieren und Löschen == * Deaktivieren entfernt den Cron-Job und lässt WordPress die Rewrite-Regeln neu erzeugen; der MCP-Endpunkt und die OAuth-Adressen sind danach nicht mehr erreichbar. Einstellungen und Protokoll bleiben erhalten. * Löschen entfernt zusätzlich alle eigenen Optionen und die Protokolltabelle (auf Multisite je Website). * Nicht entfernt werden die Daten von mcp-oauth (Option mcp_jwt_secret, Option wpmedia_mcp_oauth_rewrite_version, Benutzer-Meta mcp_refresh_jti_*, Anwendungspasswörter der Verbindungen), weil diese Bibliothek auch von anderen Plugins genutzt werden kann. Verbindungen deshalb vor dem Löschen unter Einstellungen → LIT MCP → Zugriff widerrufen; nicht mehr benötigte Anwendungspasswörter lassen sich im Benutzerprofil entfernen. == Multisite == Das Plugin wird je Website aktiviert und konfiguriert; Rollenfreigaben, Tool-Einstellungen und Protokoll gelten pro Website. Super-Admins haben (wie jede Capability in WordPress) immer lit_mcp_use, unabhängig von den freigegebenen Rollen. Der Standard-MCP-Server von mcp-adapter wird ebenfalls website-weit abgeschaltet. == Frequently Asked Questions == = Kann ich Tools abschalten oder nur lesend freigeben? = Ja, unter Einstellungen → LIT MCP → Tools einzeln oder je Gruppe; „nur lesen“ schaltet alle schreibenden Tools einer Gruppe auf einmal ab. = Bleiben mit Claude bearbeitete Divi-Seiten im Visual Builder bearbeitbar? = Ja. LIT MCP erzeugt native Divi-5-Module mit Admin-Labels und verknüpft Farben, Variablen und Presets mit dem Designsystem. Nach einer Änderung im Builder liest Claude die Seite neu, bevor es weiter ändert. == Changelog == = 0.3.0 = * Divi-Seiten: Seitenbaum mit Pfad-IDs und tree_rev, Knoten in Voll- und Kurzform, Modulkatalog, Designsystem (Farben, Variablen, Schriften, Presets), gerenderte Zusammenfassung; Abschnitte, Zeilen und Module einfügen, ändern, verschieben, duplizieren und löschen (Kurzform, Vollform, Platzhalter wie {{color:primary}}), Text seitenübergreifend ersetzen mit Probelauf, Qualitätswarnungen, neue Seiten direkt mit Divi-Inhalt. * Tools nach Gruppen einstellbar (direkt/indirekt/deaktiviert, „nur lesen“ je Gruppe); überarbeitete Einstellungsseite. = 0.2.0 = * WordPress-Basis: Schema-Erkennung inkl. Pods, Inhalte lesen/anlegen/ändern, Status, Kopie und Austausch, Revisionen, Menüs, WordPress-Einstellungen, Mediathek (Suche, Vorschau, Metadaten, Hochladen, Herunterladen, Löschen mit Verwendungsprüfung), Änderungsprotokoll, Einstellungsseite (Verbindung, Zugriff, Tools, Protokoll, Limits), konfigurierbare Tool-Exposition, Aufräumen bei Deaktivierung/Deinstallation. = 0.1.0 = * Anbindung: OAuth-geschützter MCP-Server, Rollen-Gate, lit-guide, lit-site-status.