KI-Zugang für Ihre Website (MCP): Dokumentation

Mit dem KI-Zugang lesen, ändern und veröffentlichen KI-Assistenten wie Claude die Inhalte Ihrer Website. Sie schreiben zum Beispiel „Trag auf der Startseite unsere Betriebsferien vom 23. bis 27. Dezember ein“, und der Assistent erledigt das über dieselben geprüften Wege wie das webentwickler.io CRM. Diese Seite beschreibt Einrichtung, Werkzeuge und Grenzen.

Stand 29.10.2026 · Stufe 2 (Pilot) · Model Context Protocol

Auf einen Blick

Endpunkt
https://www.webentwickler.io/mcp
Transport
Streamable HTTP, JSON-RPC 2.0, zustandslos
Anmeldung
OAuth 2.1 (Konnektor) oder Schlüssel wio_mcp_…
Protokollversionen
2025-06-18, 2025-03-26, 2024-11-05
Werkzeuge
42: 28 lesen, 13 ändern, 1 veröffentlicht
Standort
Unser Server in Deutschland

Der KI-Zugang ist ein Teil des webentwickler.io CRM für Websites, die wir bauen und betreuen. Er läuft derzeit als Pilot für ausgewählte Kunden. Ein Schlüssel bzw. eine Verbindung gilt immer für genau eine Website.

Die eine Regel: Inhalte ja, Technik nie

Der KI-Zugang darf ändern, was auf Ihrer Seite steht: Texte, Seitentitel und Beschreibungen für Google. Er darf nie ändern, wie Ihre Seite funktioniert. Diese Grenze hängt nicht an einer Bitte an die KI, sondern steckt im Code des Servers:

  • Es gibt kein Werkzeug für Code, Vorlagen, Formulare, Tracking, Cookie-Banner, Weiterleitungen oder den Seitenaufbau. Was es nicht gibt, kann die KI nicht benutzen.
  • Jeder neue Text wird geprüft: keine Skripte, keine Ereignis-Attribute, keine neuen HTML-Auszeichnungen; Platzhalter wie {year} bleiben erhalten.
  • Vor jeder Bearbeitung wird automatisch eine Datensicherung angelegt. Ohne Sicherung wird nichts geändert.
  • Nach jedem Veröffentlichen werden mehrere Seiten abgerufen und mit dem Stand davor verglichen. Hat sich mehr als Text geändert, wird sofort der vorige Stand zurückgespielt.

Einrichten

Ohne Schlüssel: als Konnektor anmelden

claude.ai und Claude Desktop: Einstellungen → Konnektoren → „Benutzerdefinierten Konnektor hinzufügen“. Als Adresse https://www.webentwickler.io/mcp eintragen und „Verbinden“ wählen. Es öffnet sich die Anmeldung des webentwickler.io CRM (Login-Link per Mail, falls Sie nicht angemeldet sind). Dort wählen Sie Website, Recht und Dauer der Verbindung und bestätigen.

Claude Code: ohne Schlüssel hinzufügen, danach in Claude Code /mcp eingeben und „Authenticate“ wählen:

claude mcp add --transport http webseite https://www.webentwickler.io/mcp

Die Verbindung erscheint im Reiter „KI-Zugang für Ihre Website (MCP)“ als „Anmeldung (OAuth)“ und lässt sich dort jederzeit trennen. Wer die Verbindung nicht selbst gestartet hat, wählt auf der Freigabeseite „Ablehnen“.

Mit Schlüssel

Für Programme ohne OAuth oder für Skripte gibt es weiterhin Schlüssel.

1. Schlüssel anlegen

Im webentwickler.io CRM im Reiter „KI-Zugang für Ihre Website (MCP)“ auf „Neuer Schlüssel“. Name, Recht, Gültigkeit und Obergrenze wählen (siehe Schlüssel und Rechte). Der Schlüssel beginnt mit wio_mcp_ und wird genau einmal angezeigt.

2. Mit dem KI-Assistenten verbinden

Claude Code: ein Befehl im Terminal, Schlüssel einsetzen:

claude mcp add --transport http webseite https://www.webentwickler.io/mcp --header "Authorization: Bearer wio_mcp_…"

Claude Desktop: unter Einstellungen → Entwickler → „Konfiguration bearbeiten“ diesen Eintrag ergänzen (benötigt Node.js) und Claude Desktop neu starten:

{
  "mcpServers": {
    "webseite": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://www.webentwickler.io/mcp",
               "--header", "Authorization:${AUTH}"],
      "env": { "AUTH": "Bearer wio_mcp_…" }
    }
  }
}

Andere Programme: Jedes Programm, das MCP über „Streamable HTTP“ spricht (z. B. Cursor), funktioniert mit der Adresse oben, mit Anmeldung (OAuth) oder mit dem Kopf Authorization: Bearer wio_mcp_…. Wo eine Firewall diesen Kopf abschneidet, geht ersatzweise X-Api-Token: wio_mcp_….

3. Ausprobieren

Beispielaufträge zum Kopieren:

Schlüssel und Rechte

EinstellungBedeutung
RechtLesen, Ändern (Entwürfe) oder Veröffentlichen. Jedes Recht schließt die darunter ein. Wer jede Änderung erst selbst ansehen möchte, wählt „Ändern“ und veröffentlicht im webentwickler.io CRM. Ein Schlüssel sieht nur die Werkzeuge seines Rechts.
Rolle im TeamJede Person hat auf der Website eine Rolle (Inhaber, Admin, Redaktion, Autor, SEO, Leser), die Inhaber oder Admin im Reiter „Team & Rechte“ vergeben und je Bereich anpassen können. Den Seitenaufbau (Listen, Karten, Ebenen, Absätze) ändern nur Rollen mit dem Recht „Seitenaufbau“; wer nicht veröffentlichen darf, reicht mit freigabe_einreichen zur Freigabe ein. Ein Schlüssel oder eine Verbindung darf nie mehr als die Person, der er gehört: Die Werkzeugliste zeigt nur, was Schlüsselrecht und Rolle zulassen. websites nennt die Rolle und die gesperrten Werkzeuge. Rollenwechsel gelten sofort.
GültigStandard 90 Tage, höchstens ein Jahr.
ObergrenzeSchreibende Aufrufe je Stunde, Standard 60.
SpeicherungWir speichern nur eine Prüfsumme des Schlüssels. Ist er verloren, legen Sie einen neuen an und widerrufen den alten.

Entwurf, Veröffentlichen, Zurücknehmen

  1. Finden: mit seite_texte, text_suchen oder seite_gliederung das richtige Feld bestimmen.
  2. Ändern: jedes ändernde Werkzeug legt einen Entwurf an. Die Website zeigt ihn noch nicht. Vorher sichert der Server automatisch.
  3. Zeigen: vorschau stellt alt und neu nebeneinander, entwurf_stand listet alles Offene.
  4. Veröffentlichen: veroeffentlichen stellt alle Entwürfe des KI-Zugangs auf einmal live. Wurde auf der Website inzwischen direkt etwas geändert, veröffentlicht der Server nicht, damit nichts überschrieben wird. Entwürfe, die jemand im webentwickler.io CRM angefangen hat, nimmt er nicht mit.
  5. Zurücknehmen: rueckgaengig nimmt eine Änderung (Nummer aus aenderungen) oder alles seit einer Sicherung zurück; war der alte Stand schon live, danach erneut veröffentlichen. entwurf_verwerfen verwirft Entwürfe, ohne die Website zu berühren.

Blockseiten (z. B. Leistungsseiten aus Blöcken) sind ebenfalls Entwurf. Beim Veröffentlichen schreibt der Server zuerst die Blockseiten, jede vorher gesichert, dann die Texte, und prüft danach auch diese Seiten. Dieselben Entwürfe sehen Sie im Adminbalken und im Editor des webentwickler.io CRM.

Die 42 Werkzeuge

Werkzeugnamen und Parameternamen sind deutsch und fest; so ruft der Assistent sie auf. Die Liste entspricht dem, was der Server bei tools/list liefert.

WerkzeugWas es tutRecht
websitesDie Website dieses Schlüssels: Name, Adresse, Sprachen, letzte Veröffentlichung, die Rechte des Schlüssels und die Rolle der Person im Team samt gesperrten Werkzeugen. Guter erster Aufruf.Lesen
anleitungLiefert die Anleitung zum KI-Zugang: was erlaubt ist, was nie geht und warum, wie Veröffentlichen und Zurücknehmen funktionieren.Lesen
neuigkeitenWas ist neu im webentwickler.io CRM, im Adminbalken und im KI-Zugang (Release Notes).Lesen
datenwegeWie wir technisch mit Ihrer Website arbeiten: welcher Server was tut, jede Verbindung mit Protokoll und Verschlüsselung, angebundene Dienste, wie gesichert wird.Lesen
zweifaktor_standWer im Team die Zwei-Faktor-Anmeldung eingerichtet hat und ob die Website sie für alle verlangt. Nur lesen.Lesen
seiten_listeAlle Seiten: Pfad, Titel, Typ, Sprache, Status, wer angelegt und zuletzt bearbeitet hat, GEO-, SEO- und Pagespeed-Werte.Lesen
seite_steckbriefAlles zu einer Seite: Titel und Beschreibung in Google, GEO-Verlauf, Verlauf der Änderungen, offene Wünsche.Lesen
seite_texteAlle Textfelder einer Seite mit Schlüssel, Text, Zeichengrenze und ob sie änderbar sind. Vor jeder Textänderung aufrufen.Lesen
text_suchenFindet ein Wort oder einen Satz in allen Texten, z. B. eine alte Telefonnummer.Lesen
seite_gliederungÜberschriften (H1–H6) mit erlaubten Ebenen, Aufzählungen, freie Listen-Plätze, Kartenreihen und bei Blockseiten die Blöcke, mit Hinweisen zur Gliederung.Lesen
unsichtbare_texteTexte, die nicht als Text auf der Seite stehen: Google-Titel und -Beschreibung, Bildbeschreibungen, Stammdaten, Cookie-Hinweis.Lesen
seo_standSeitentitel und Beschreibungen, live gemessen, mit echten Suchanfragen aus der Google Search Console und fehlenden Suchbegriffen im Titel.Lesen
suchanfrage_abfragenEchte Google-Zahlen zu einer Suchanfrage wie in der Search Console: Klicks, Impressionen, Ø Platz, Wochenverlauf, passende Suchanfragen und Seiten, bis 16 Monate.Lesen
keywords_beobachtetDie beobachteten Keywords mit echtem Google-Platz (Ø 28 Tage), Vergleich zum Zeitraum davor und Wochenverlauf.Lesen
bericht_monatDie Zahlen eines Monats wie im Monatsbericht per Mail: Besucher, Herkunft, meistbesuchte Seiten, Anfragen, Google-Klicks und Platz, Bewertung, Erreichbarkeit, Erledigtes.Lesen
auffaelligkeitenOb gerade etwas ungewöhnlich ist: Besucher-Einbruch oder -Sprung, keine Anfragen mehr, Google-Klicks eingebrochen, viele Fehlerseiten — mit Normalwert und Verlauf.Lesen
barrierefreiheit_befundeDie Befunde der letzten Barrierefreiheits-Prüfung nach WCAG 2.2 AA (BFSG): Kriterium, Schwere, Erklärung, Behebung, betroffene Seiten, Stand der Vereinbarkeit und Lighthouse-Wert — auf Wunsch mit der Erklärung zur Barrierefreiheit.Lesen
ki_sichtbarkeitOb ChatGPT, Perplexity, Gemini und Claude Ihre Firma nennen, wenn Kunden typische Fragen stellen: Anteil in Prozent, je Assistent und Frage, Platz, wer stattdessen genannt wird und welche Quellen die Assistenten lesen.Lesen
vorschauAlle Entwürfe neben dem Live-Stand (vorher/nachher je Feld). Vor dem Veröffentlichen dem Menschen zeigen.Lesen
entwurf_standWas wartet aufs Veröffentlichen: Texte und Blockseiten, mit Zeitpunkt und Herkunft (KI-Zugang oder webentwickler.io CRM).Lesen
aenderungenProtokoll der Änderungen über den KI-Zugang mit altem und neuem Text und der Nummer zum Zurücknehmen.Lesen
seite_versionenZeitleiste einer Seite: bei jedem Veröffentlichen wann, wer, woher und was sich geändert hat; mit Nummer die Felder vorher/nachher und der Unterschied zu heute.Lesen
anpassungen_listeIhre Änderungswünsche mit Stand (offen, in Arbeit, zur Prüfung, erledigt, abgelehnt) und letzter Rückmeldung unseres Teams.Lesen
text_aendernEinen vorhandenen Text in einer Sprache ändern. Ergebnis ist ein Entwurf; vorher wird automatisch gesichert.Ändern
seo_setzenSeitentitel (title) oder Beschreibung (meta description) setzen. Empfehlung: Titel 30–60, Beschreibung 120–160 Zeichen.Ändern
alt_text_setzenBildbeschreibung (alt-Text) eines Bildes setzen, 5–250 Zeichen reiner Text. Das Bild selbst tauscht nur ein Mensch.Ändern
liste_bearbeitenIn einer Aufzählung einen Punkt einfügen, ändern, entfernen oder verschieben, oder unter einem Absatz eine neue Liste anlegen. Höchstens 30 Punkte.Ändern
ueberschrift_ebeneEine Überschrift zur H2, H3 oder H4 machen. Das Aussehen bleibt, gilt in allen Sprachen. Was die Gliederung bricht, lehnt der Server ab.Ändern
gruppe_bearbeitenEine Karte bzw. einen Eintrag (Vorteile, Kennzahlen, FAQ …) hinzufügen, entfernen oder verschieben. Die Nummern ordnet der Server neu.Ändern
block_bearbeitenBlockseiten: Ebene wechseln, Absatz, Zwischenüberschrift oder Liste einfügen, entfernen, verschieben, Texte ersetzen. Nur reiner Text.Ändern
rueckgaengigEine einzelne Änderung oder alles seit einer Datensicherung zurücknehmen. War der alte Stand schon live, danach veröffentlichen.Ändern
entwurf_verwerfenEntwürfe des KI-Zugangs verwerfen: einen Text, eine Blockseite oder alles. Entwürfe aus dem webentwickler.io CRM bleiben unberührt.Ändern
version_zurueckholenDen Stand nach einer früheren Version (oder mit vorher=true den Stand davor) als Entwurf zurückholen; live erst mit veroeffentlichen.Ändern
termine_listeDie über die Website gebuchten Termine wie im Reiter „Termine“: wann, Terminart, Name, Kontakt, Nachricht und Stand, dazu kommende Termine und offene Anfragen.Lesen
termine_freie_zeitenWelche Zeiten Besucher gerade buchen können, je Tag — abzüglich Urlaub, gebuchter Termine und belegter Zeiten aus angebundenen Kalendern.Lesen
termin_absagenEinen Termin absagen oder eine Anfrage ablehnen: Der Buchende bekommt eine Mail, die den Kalendereintrag entfernt; die Zeit ist wieder frei.Ändern
anpassung_beauftragenFür alles, was der KI-Zugang nicht selbst darf (Gestaltung, Aufbau, Formulare, Technik, Bilder, Menü, Rechtstexte): Wunsch an unser Team. Ein Mensch prüft und setzt um.Ändern
feedback_meldenFehler, Idee, Lob oder Frage zum webentwickler.io CRM selbst an unser Team melden, mit Ticketnummer (FB-0012). Die Antwort kommt im CRM und per Mail. Reicht das Recht „Lesen“. Für Änderungen an der Website: anpassung_beauftragen.Lesen
feedback_standDie eigenen Feedback-Meldungen mit Stand (Eingegangen, In Arbeit, Erledigt, Beantwortet, Nicht geplant) und unseren Antworten. Meldungen anderer Personen sind nicht sichtbar.Lesen
freigabe_einreichenFür Personen ohne Recht zum Veröffentlichen (z. B. Rolle Autor): meldet den offenen Entwurf zur Freigabe. Wer veröffentlichen darf, bekommt eine Meldung im webentwickler.io CRM. Optional mit Notiz.Ändern
freigaben_offenWelche Entwürfe zur Freigabe eingereicht sind (wer, wann, Notiz) und der Stand der eigenen Einreichungen: offen, freigegeben oder zurückgegeben mit Antwort.Lesen
veroeffentlichenStellt alle Entwürfe des KI-Zugangs live. Vorher Abgleich mit der Website und Datensicherung, nachher Prüfung der Seiten; bei Abweichung automatisches Zurückspielen.Veröffentlichen

Orientierung

websites

Lesen

Die Website dieses Schlüssels: Name, Adresse, Sprachen, letzte Veröffentlichung, die Rechte des Schlüssels und die Rolle der Person im Team samt gesperrten Werkzeugen. Guter erster Aufruf.

Keine Parameter.

anleitung

Lesen

Liefert die Anleitung zum KI-Zugang: was erlaubt ist, was nie geht und warum, wie Veröffentlichen und Zurücknehmen funktionieren.

Keine Parameter.

neuigkeiten

Lesen

Was ist neu im webentwickler.io CRM, im Adminbalken und im KI-Zugang (Release Notes).

ParameterTypPflichtBedeutung
anzahlZahl–Wie viele Einträge (Standard 15, höchstens 50).

datenwege

Lesen

Wie wir technisch mit Ihrer Website arbeiten: welcher Server was tut, jede Verbindung mit Protokoll und Verschlüsselung, angebundene Dienste, wie gesichert wird.

Keine Parameter.

zweifaktor_stand

Lesen

Wer im Team die Zwei-Faktor-Anmeldung eingerichtet hat und ob die Website sie für alle verlangt. Nur lesen.

Keine Parameter.

Seiten und Texte lesen

seiten_liste

Lesen

Alle Seiten: Pfad, Titel, Typ, Sprache, Status, wer angelegt und zuletzt bearbeitet hat, GEO-, SEO- und Pagespeed-Werte.

ParameterTypPflichtBedeutung
typText–Nur Seiten dieses Typs (optional).
Werte: startseite, leistung, ortsseite, objekt, referenz, beitrag, seite, rechtliches
mit_entferntenja/nein–Auch Seiten zeigen, die nicht mehr erreichbar sind (Standard: nein).
sucheText–Nur Seiten, deren Titel oder Pfad das enthält (optional).

seite_steckbrief

Lesen

Alles zu einer Seite: Titel und Beschreibung in Google, GEO-Verlauf, Verlauf der Änderungen, offene Wünsche.

ParameterTypPflichtBedeutung
seiteTextjaPfad der Seite, z. B. "/" oder "/service/immobilienbewertung/".

seite_texte

Lesen

Alle Textfelder einer Seite mit Schlüssel, Text, Zeichengrenze und ob sie änderbar sind. Vor jeder Textänderung aufrufen.

ParameterTypPflichtBedeutung
seiteTextjaPfad der Seite, z. B. "/" oder "/leistungen".
spracheText–Sprachkürzel, z. B. "de" oder "en". Standard: Hauptsprache der Website.

text_suchen

Lesen

Findet ein Wort oder einen Satz in allen Texten, z. B. eine alte Telefonnummer.

ParameterTypPflichtBedeutung
begriffTextjaGesuchter Text, mindestens 3 Zeichen.
spracheText–Nur in dieser Sprache suchen (optional).

seite_gliederung

Lesen

Überschriften (H1–H6) mit erlaubten Ebenen, Aufzählungen, freie Listen-Plätze, Kartenreihen und bei Blockseiten die Blöcke, mit Hinweisen zur Gliederung.

ParameterTypPflichtBedeutung
seiteTextjaPfad der Seite, z. B. "/" oder "/leistungen".
spracheText–Sprachkürzel für die Listenpunkte. Standard: Hauptsprache.

unsichtbare_texte

Lesen

Texte, die nicht als Text auf der Seite stehen: Google-Titel und -Beschreibung, Bildbeschreibungen, Stammdaten, Cookie-Hinweis.

ParameterTypPflichtBedeutung
seiteText–Pfad der Seite — ihre Google-Texte stehen dann oben (optional).
spracheText–Sprachkürzel (Standard: Hauptsprache).

SEO, Google, KI-Sichtbarkeit, Barrierefreiheit und Monatsbericht

seo_stand

Lesen

Seitentitel und Beschreibungen, live gemessen, mit echten Suchanfragen aus der Google Search Console und fehlenden Suchbegriffen im Titel.

ParameterTypPflichtBedeutung
seiteText–Pfad der Seite (optional).
spracheText–Sprachkürzel (optional).

suchanfrage_abfragen

Lesen

Echte Google-Zahlen zu einer Suchanfrage wie in der Search Console: Klicks, Impressionen, Ø Platz, Wochenverlauf, passende Suchanfragen und Seiten, bis 16 Monate.

ParameterTypPflichtBedeutung
begriffTextjaSuchbegriff oder (bei modus=regex) regulärer Ausdruck in RE2-Schreibweise.
modusText–enthaelt (Standard), genau, nicht = enthält nicht, regex.
Werte: enthaelt, genau, nicht, regex
tageZahl–Zeitraum in Tagen bis zum letzten Datentag (Standard 90, 7 bis 486).
geraetText–Nur ein Gerät (optional).
Werte: MOBILE, DESKTOP, TABLET

keywords_beobachtet

Lesen

Die beobachteten Keywords mit echtem Google-Platz (Ø 28 Tage), Vergleich zum Zeitraum davor und Wochenverlauf.

ParameterTypPflichtBedeutung
frischja/nein–Neu bei Google abrufen statt des Stands der letzten 12 Stunden (Standard: nein).

bericht_monat

Lesen

Die Zahlen eines Monats wie im Monatsbericht per Mail: Besucher, Herkunft, meistbesuchte Seiten, Anfragen, Google-Klicks und Platz, Bewertung, Erreichbarkeit, Erledigtes.

ParameterTypPflichtBedeutung
monatText–Monat als JJJJ-MM (Standard: der letzte abgeschlossene Monat).

auffaelligkeiten

Lesen

Ob gerade etwas ungewöhnlich ist: Besucher-Einbruch oder -Sprung, keine Anfragen mehr, Google-Klicks eingebrochen, viele Fehlerseiten — mit Normalwert und Verlauf.

Keine Parameter.

barrierefreiheit_befunde

Lesen

Die Befunde der letzten Barrierefreiheits-Prüfung nach WCAG 2.2 AA (BFSG): Kriterium, Schwere, Erklärung, Behebung, betroffene Seiten, Stand der Vereinbarkeit und Lighthouse-Wert — auf Wunsch mit der Erklärung zur Barrierefreiheit.

ParameterTypPflichtBedeutung
schwereText–Nur Befunde dieser Schwere (optional).
Werte: kritisch, mittel, gering
seiteText–Nur Befunde auf dieser Seite, Pfad wie /kontakt/ (optional).
mit_erklaerungja/nein–Die Erklärung zur Barrierefreiheit (Vorlage, Sie-Form) als Text mitliefern (Standard: nein).

ki_sichtbarkeit

Lesen

Ob ChatGPT, Perplexity, Gemini und Claude Ihre Firma nennen, wenn Kunden typische Fragen stellen: Anteil in Prozent, je Assistent und Frage, Platz, wer stattdessen genannt wird und welche Quellen die Assistenten lesen.

ParameterTypPflichtBedeutung
antwortenja/nein–Auch einen Auszug aus jeder Antwort mitliefern (Standard: nein).

Entwürfe, Verlauf und Wünsche

vorschau

Lesen

Alle Entwürfe neben dem Live-Stand (vorher/nachher je Feld). Vor dem Veröffentlichen dem Menschen zeigen.

Keine Parameter.

entwurf_stand

Lesen

Was wartet aufs Veröffentlichen: Texte und Blockseiten, mit Zeitpunkt und Herkunft (KI-Zugang oder webentwickler.io CRM).

Keine Parameter.

aenderungen

Lesen

Protokoll der Änderungen über den KI-Zugang mit altem und neuem Text und der Nummer zum Zurücknehmen.

ParameterTypPflichtBedeutung
anzahlZahl–Wie viele Einträge (Standard 20, höchstens 100).

seite_versionen

Lesen

Zeitleiste einer Seite: bei jedem Veröffentlichen wann, wer, woher und was sich geändert hat; mit Nummer die Felder vorher/nachher und der Unterschied zu heute.

ParameterTypPflichtBedeutung
seiteText–Pfad der Seite, z. B. "/" oder "/service/immobilienbewertung/".
alleja/nein–Zeitleiste der ganzen Website statt einer Seite (Standard: nein).
versionZahl–Nummer einer Version aus der Liste — liefert die Einzelheiten.
anzahlZahl–Wie viele Versionen (Standard 20, höchstens 100).

anpassungen_liste

Lesen

Ihre Änderungswünsche mit Stand (offen, in Arbeit, zur Prüfung, erledigt, abgelehnt) und letzter Rückmeldung unseres Teams.

ParameterTypPflichtBedeutung
seiteText–Pfad der Seite (optional).
statusText–offen = neu + in Arbeit + zur Prüfung (Standard: alle).
Werte: offen, neu, in_arbeit, zur_pruefung, erledigt, abgelehnt, alle

Inhalte ändern (Entwurf)

text_aendern

Ändern

Einen vorhandenen Text in einer Sprache ändern. Ergebnis ist ein Entwurf; vorher wird automatisch gesichert.

ParameterTypPflichtBedeutung
schluesselTextjaSchlüssel des Feldes aus seite_texte oder text_suchen, z. B. "hero.h1".
textTextjaNeuer Text. Auszeichnungen und Platzhalter wie {year} nur, wenn sie schon im bisherigen Text standen.
spracheText–Sprachkürzel (Standard: Hauptsprache).

seo_setzen

Ändern

Seitentitel (title) oder Beschreibung (meta description) setzen. Empfehlung: Titel 30–60, Beschreibung 120–160 Zeichen.

ParameterTypPflichtBedeutung
seiteTextjaPfad der Seite, z. B. "/leistungen".
feldTextjatitel oder beschreibung.
Werte: titel, beschreibung
textTextjaNeuer Wert, reiner Text ohne HTML.
spracheText–Sprachkürzel (Standard: Hauptsprache).

alt_text_setzen

Ändern

Bildbeschreibung (alt-Text) eines Bildes setzen, 5–250 Zeichen reiner Text. Das Bild selbst tauscht nur ein Mensch.

ParameterTypPflichtBedeutung
schluesselTextjaSchlüssel des alt-Textes oder "block:<nr>" (Blockseite).
textTextjaNeue Bildbeschreibung, reiner Text.
seiteText–Nur bei "block:<nr>": Pfad der Blockseite.
spracheText–Sprachkürzel (Standard: Hauptsprache).

liste_bearbeiten

Ändern

In einer Aufzählung einen Punkt einfügen, ändern, entfernen oder verschieben, oder unter einem Absatz eine neue Liste anlegen. Höchstens 30 Punkte.

ParameterTypPflichtBedeutung
schluesselTextjaSchlüssel der Liste aus seite_gliederung, z. B. "meta.intro.list".
aktionTextjaWas mit dem Punkt geschehen soll; anlegen = neue Liste in einem Steckplatz.
Werte: einfuegen, aendern, entfernen, verschieben, anlegen
punkteListe–Nur bei anlegen: alle Punkte der neuen Liste (statt text).
positionZahl–Nummer des Punkts, ab 1. Bei einfuegen: Stelle des neuen Punkts (ohne Angabe: ans Ende).
nachZahl–Nur bei verschieben: neue Stelle, ab 1.
textText–Text des Punkts bei einfuegen und aendern, ohne <li>. Auszeichnungen nur, wenn die Liste sie schon hat.
spracheText–Sprachkürzel (Standard: Hauptsprache).
seiteText–Pfad der Seite mit der Liste (optional, wird beim Veröffentlichen mitgeprüft).

ueberschrift_ebene

Ändern

Eine Überschrift zur H2, H3 oder H4 machen. Das Aussehen bleibt, gilt in allen Sprachen. Was die Gliederung bricht, lehnt der Server ab.

ParameterTypPflichtBedeutung
seiteTextjaPfad der Seite mit der Überschrift.
schluesselTextjaSchlüssel der Überschrift aus seite_gliederung (schluessel_ebene).
ebeneTextjaNeue Ebene.
Werte: h2, h3, h4

gruppe_bearbeiten

Ändern

Eine Karte bzw. einen Eintrag (Vorteile, Kennzahlen, FAQ …) hinzufügen, entfernen oder verschieben. Die Nummern ordnet der Server neu.

ParameterTypPflichtBedeutung
seiteTextjaPfad der Seite mit der Gruppe.
gruppeTextjaName der Gruppe aus seite_gliederung, z. B. "meta.vor".
aktionTextjaWas geschehen soll.
Werte: hinzufuegen, entfernen, verschieben
positionZahl–Nummer des Eintrags ab 1. Bei hinzufuegen: Stelle des neuen Eintrags (ohne Angabe: ans Ende).
nachZahl–Nur bei verschieben: neue Stelle ab 1.
felderObjekt–Nur bei hinzufuegen: Texte je Feld, z. B. {"h": {"de": "Titel", "en": "Title"}, "p": {"de": "…", "en": "…"}}. Bei nur einer Sprache reicht {"h": "Titel"}.

block_bearbeiten

Ändern

Blockseiten: Ebene wechseln, Absatz, Zwischenüberschrift oder Liste einfügen, entfernen, verschieben, Texte ersetzen. Nur reiner Text.

ParameterTypPflichtBedeutung
seiteTextjaPfad der Blockseite, z. B. "/service/immobilienbewertung".
aktionTextjaebene = Überschrift umschalten; einfuegen = neuer Block; text = Text eines Absatzes/einer Überschrift ersetzen; liste = alle Punkte einer Liste ersetzen.
Werte: ebene, einfuegen, entfernen, verschieben, text, liste
positionZahl–Nummer des Blocks aus seite_gliederung (bloecke[].nr), ab 1. Bei einfuegen: Stelle des neuen Blocks (ohne Angabe: ans Ende).
nachZahl–Nur bei verschieben: neue Stelle, ab 1.
ebeneText–Bei ebene: neue Ebene.
Werte: h2, h3, h4
typText–Bei einfuegen: Art des neuen Blocks.
Werte: absatz, h2, h3, h4, liste
textText–Bei einfuegen (absatz/h2/h3/h4) und text: reiner Text ohne HTML.
punkteListe–Bei einfuegen (liste) und liste: alle Punkte, reiner Text.
nummeriertja/nein–Bei einfuegen (liste): nummerierte Liste statt Aufzählungspunkten.

Zurücknehmen und Verwerfen

rueckgaengig

Ändern

Eine einzelne Änderung oder alles seit einer Datensicherung zurücknehmen. War der alte Stand schon live, danach veröffentlichen.

ParameterTypPflichtBedeutung
aenderungZahl–Nummer der Änderung aus aenderungen.
sicherungZahl–Nummer einer Datensicherung — setzt alle Texte auf deren Stand.

entwurf_verwerfen

Ändern

Entwürfe des KI-Zugangs verwerfen: einen Text, eine Blockseite oder alles. Entwürfe aus dem webentwickler.io CRM bleiben unberührt.

ParameterTypPflichtBedeutung
schluesselText–Ein Textfeld verwerfen.
spracheText–Sprache des Textfelds (Standard: Hauptsprache).
seiteText–Alle Entwürfe dieser Blockseite verwerfen.
allesja/nein–Alle Entwürfe des KI-Zugangs verwerfen.

version_zurueckholen

Ändern

Den Stand nach einer früheren Version (oder mit vorher=true den Stand davor) als Entwurf zurückholen; live erst mit veroeffentlichen.

ParameterTypPflichtBedeutung
versionZahljaNummer der Version aus seite_versionen.
vorherja/nein–Stand VOR dieser Version zurückholen, also genau diese Änderung zurücknehmen (Standard: nein = Stand nach der Version).

Online-Terminbuchung

termine_liste

Lesen

Die über die Website gebuchten Termine wie im Reiter „Termine“: wann, Terminart, Name, Kontakt, Nachricht und Stand, dazu kommende Termine und offene Anfragen.

ParameterTypPflichtBedeutung
zeitraumText–kommend (Standard) oder vergangen.
Werte: kommend, vergangen
tageZahl–Wie viele Tage voraus bzw. zurück (Standard 60 bzw. 30, höchstens 366).
mit_abgesagtenja/nein–Auch abgesagte und abgelehnte Termine zeigen (Standard: nein).

termine_freie_zeiten

Lesen

Welche Zeiten Besucher gerade buchen können, je Tag — abzüglich Urlaub, gebuchter Termine und belegter Zeiten aus angebundenen Kalendern.

ParameterTypPflichtBedeutung
terminartText–Name oder id der Terminart (Standard: die erste buchbare).
vonText–Erster Tag als JJJJ-MM-TT (Standard: heute).
tageZahl–Wie viele Tage ab „von" (Standard 14, höchstens 31).

termin_absagen

Ändern

Einen Termin absagen oder eine Anfrage ablehnen: Der Buchende bekommt eine Mail, die den Kalendereintrag entfernt; die Zeit ist wieder frei.

ParameterTypPflichtBedeutung
idZahljaid des Termins aus termine_liste.
grundText–Grund für den Buchenden, steht in der Mail (optional, höchstens 500 Zeichen). Freundlich und ohne Interna formulieren.

Wünsche und Feedback an das Team

anpassung_beauftragen

Ändern

Für alles, was der KI-Zugang nicht selbst darf (Gestaltung, Aufbau, Formulare, Technik, Bilder, Menü, Rechtstexte): Wunsch an unser Team. Ein Mensch prüft und setzt um.

ParameterTypPflichtBedeutung
wunschTextjaWas geändert werden soll, so konkret wie möglich.
seiteText–Pfad der betroffenen Seite (optional).

feedback_melden

Lesen

Fehler, Idee, Lob oder Frage zum webentwickler.io CRM selbst an unser Team melden, mit Ticketnummer (FB-0012). Die Antwort kommt im CRM und per Mail. Reicht das Recht „Lesen“. Für Änderungen an der Website: anpassung_beauftragen.

ParameterTypPflichtBedeutung
artTextjafehler = etwas geht nicht, idee = etwas fehlt oder ginge einfacher, lob, frage = wie geht …?
Werte: fehler, idee, lob, frage
textTextjaWorum es geht, in ganzen Sätzen: was passiert ist und was erwartet war (höchstens 5000 Zeichen).
bereichText–Betroffener Bereich des CRM, z. B. „Editor" oder „KI-Zugang" (optional).

feedback_stand

Lesen

Die eigenen Feedback-Meldungen mit Stand (Eingegangen, In Arbeit, Erledigt, Beantwortet, Nicht geplant) und unseren Antworten. Meldungen anderer Personen sind nicht sichtbar.

Keine Parameter.

Freigabe und Veröffentlichen

freigabe_einreichen

Ändern

Für Personen ohne Recht zum Veröffentlichen (z. B. Rolle Autor): meldet den offenen Entwurf zur Freigabe. Wer veröffentlichen darf, bekommt eine Meldung im webentwickler.io CRM. Optional mit Notiz.

ParameterTypPflichtBedeutung
notizText–Kurze Notiz für die Person, die freigibt (optional, höchstens 1000 Zeichen).

freigaben_offen

Lesen

Welche Entwürfe zur Freigabe eingereicht sind (wer, wann, Notiz) und der Stand der eigenen Einreichungen: offen, freigegeben oder zurückgegeben mit Antwort.

Keine Parameter.

veroeffentlichen

Veröffentlichen

Stellt alle Entwürfe des KI-Zugangs live. Vorher Abgleich mit der Website und Datensicherung, nachher Prüfung der Seiten; bei Abweichung automatisches Zurückspielen.

Keine Parameter.

Gliederung: Überschriften, Listen, Karten

Protokoll und Fehlercodes

Jede Anfrage ist ein POST mit JSON-RPC 2.0, die Antwort kommt als application/json. Keine Dauerverbindung, keine Sitzungs-ID, kein Server-Sent-Events-Strom. Stapel (JSON-Arrays) älterer Protokollfassungen werden angenommen.

MethodeAntwort
initializeProtokollversion (die gewünschte, falls unterstützt, sonst 2025-06-18), capabilities.tools, serverInfo (webentwickler-ki-zugang) und instructions mit der Regel und dem empfohlenen Vorgehen.
tools/listDie Werkzeuge für das Recht des Schlüssels, mit inputSchema und annotations (readOnlyHint u. a.).
tools/callErgebnis als Text (content) und als Objekt (structuredContent), isError bei abgelehnten Aufrufen.
pingLeeres Ergebnis.
resources/list, prompts/listLeere Listen.
Benachrichtigungen (ohne id)HTTP 202 ohne Inhalt

Anmeldung (OAuth 2.1)

Umgesetzt nach der MCP-Spezifikation „Authorization“ (2025-06-18). Ohne Anmeldung antwortet /mcp mit 401 und WWW-Authenticate: Bearer resource_metadata=…; daran erkennt der Assistent den Anmeldeserver.

AdresseZweck
/.well-known/oauth-protected-resource/mcpProtected Resource Metadata (RFC 9728)
/.well-known/oauth-authorization-serverAuthorization Server Metadata (RFC 8414)
/oauth/registerDynamic Client Registration (RFC 7591)
/oauth/authorizeFreigabe im webentwickler.io CRM; nur Authorization Code mit PKCE S256
/oauth/tokenauthorization_code und refresh_token; Zugriffstoken 1 Stunde, Erneuerungstoken rotierend
/oauth/revokeToken Revocation (RFC 7009)

Beispiel

curl https://www.webentwickler.io/mcp \
  -H "Authorization: Bearer wio_mcp_…" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize",
       "params":{"protocolVersion":"2025-06-18","capabilities":{},
                 "clientInfo":{"name":"test","version":"1.0"}}}'
curl https://www.webentwickler.io/mcp \
  -H "Authorization: Bearer wio_mcp_…" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
       "params":{"name":"text_suchen","arguments":{"begriff":"04103 123456"}}}'

Antwort auf tools/call:

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [{ "type": "text", "text": "{ … }" }],
    "structuredContent": { … },
    "isError": false
  }
}

HTTP-Status und JSON-RPC-Fehler

HTTPCodeBedeutung
200–Antwort bzw. Ergebnis eines Werkzeugs (auch abgelehnte Werkzeugaufrufe, dann isError: true)
202–Benachrichtigung angenommen
400-32700Ungültiges JSON
401-32001Nicht angemeldet; Schlüssel, Verbindung oder Zugriffstoken unbekannt, widerrufen oder abgelaufen (der Assistent erneuert ein abgelaufenes Zugriffstoken selbst); Website nicht freigeschaltet; Person ohne Zugang. Die Meldung nennt den Grund.
200-32600Ungültige Anfrage (kein JSON-RPC 2.0)
200-32601Unbekannte Methode
405–Andere Methode als POST/OPTIONS; ein einfaches GET liefert eine kurze Beschreibung als JSON.
500-32603Interner Fehler

Was der KI-Zugang nie tut

In Stufe 1 zusätzlich noch gesperrt: Rechtstexte (Impressum, Datenschutz), Stammdaten (Telefon, Anschrift, Links), FAQ-Einträge, Menü-Beschriftungen und Bilder selbst. Bildbeschreibungen (alt-Texte) sind über alt_text_setzen erlaubt. Für alles andere legt die KI über anpassung_beauftragen einen Wunsch an; unser Team prüft und setzt um, den Stand zeigt anpassungen_liste.

Meldungen

„Auf der Website wurde direkt etwas geändert …“

Die Live-Texte weichen von der Quelle im webentwickler.io CRM ab. Bitte dort neu einlesen lassen oder uns Bescheid geben.

„… wurde auf dem Server geändert, seit der Entwurf begonnen hat“

Eine Blockseite ist inzwischen anders geändert worden. Den Entwurf dieser Seite mit entwurf_verwerfen verwerfen und neu bearbeiten.

„… Änderungen, die nicht über den KI-Zugang kamen“

Im webentwickler.io CRM liegt ein Entwurf eines Menschen. Den stellt nur er live oder verwirft ihn, im Editor.

„Gesperrt: …“

Das Feld ist kein Text oder gehört zu den gesperrten Bereichen. Die Meldung nennt den Grund.

„Obergrenze erreicht“

Zu viele schreibende Aufrufe in der letzten Stunde.

„Datensicherung fehlgeschlagen“

Der Server Ihrer Website war nicht erreichbar. Es wurde nichts geändert.

„Nach dem Veröffentlichen hat sich mehr als Text geändert“

Der vorige Stand wurde automatisch zurückgespielt. Bitte melden Sie sich bei uns.

Datenschutz

Trennen und widerrufen

Geht ein Gerät verloren oder verlässt jemand das Team: im Reiter beim Schlüssel bzw. bei der Verbindung auf „Widerrufen“. Das wirkt sofort, auch für bereits ausgegebene Anmeldungen. Ein Schlüssel oder eine Verbindung verliert seine Wirkung außerdem automatisch, wenn er abläuft oder die Person, die ihn angelegt hat, keinen Zugang mehr zu Ihrer Website hat.

Mehr Hintergrund für Nicht-Techniker: Was ist MCP? Wie KI-Assistenten Ihre Website pflegen. Fragen oder Interesse am Pilot: info@webentwickler.io.