Skip to main content Skip to page footer

Verfügbare Tools

Der TYPO3 AI Suite MCP Server stellt derzeit 45 Tools bereit. Jedes Tool gehört zu genau einem OAuth-Scope, und ein Scope wird nur gewährt, wenn die Backend-Gruppe des Benutzers das passende AI Suite-Feature-Recht besitzt (siehe Berechtigungen & Scopes). Die Tool-Liste, die ein Model zu sehen bekommt, ist deshalb pro Benutzer unterschiedlich. Fehlt ein Recht, taucht das betroffene Tool gar nicht auf.

Die folgende Übersicht ist nach Scopes gruppiert und nennt zu jedem Tool kurz seinen Zweck. Die vollständigen Parameter liefert jeder Client selbst, weil sie als JSON-Schema Teil der Tool-Definition sind. Welche Tools eine konkrete Installation tatsächlich ausliefert, verrät readServerInfo.

Backend-Links in den Tool-Ergebnissen

Seit Version 0.7.0 liefert jeder Aufruf, der Datensätze berührt hat, die betroffenen Datensätze zusätzlich als Backend-Links zurück. Sie kommen über zwei Wege: als structuredContent.links für Clients, die Links selbst darstellen, und als Textblock „⚙ Open in TYPO3“ am Ende des Ergebnisses, wodurch sie im Chat anklickbar werden. Als Beschriftung dient der Titel des Datensatzes, sofern er einen hat.

Die Links sind nach Tabelle gruppiert, weil eine Seite und die Inhaltselemente darauf unterschiedliche Ziele sind. pages steht vorn, danach folgen die übrigen Tabellen in der Reihenfolge, in der sie berührt wurden. Die Obergrenze von sechs Links gilt pro Gruppe, damit eine geschriebene Seite nicht von den Inhaltselementen verdrängt wird, die auf ihr angelegt wurden. Das Feld omitted nennt je Gruppe, wie viele Links die Obergrenze weggelassen hat, sodass eine gekürzte Gruppe nicht mit einer vollständigen verwechselt werden kann.

Die Adressen sind absolut und enthalten bewusst keinen Route-Token. Ein Token gehört zu der Sitzung, die ihn erzeugt hat, also zur MCP-Sitzung und nicht zum Browser der Redaktion. In einem Link, der den Prozess verlässt, wäre er wertlos. TYPO3 beantwortet eine Backend-Adresse ohne Token mit einer Weiterleitung über den Login, die das ursprüngliche Ziel mitführt. Wer im Backend angemeldet ist, landet also direkt auf dem Datensatz.

Woher Schema und Host stammen, entscheidet sich in dieser Reihenfolge: zuerst die Einstellung mcpBackendBaseUrl, dann die aktuelle Anfrage, zuletzt die Site-Konfiguration. Ergibt keine davon eine vollständige Adresse, etwa beim stdio-Transport ohne konfigurierte Site, lässt die AI Suite MCP den Link weg statt ihn defekt auszugeben, und vermerkt das in aisuite_mcp_warnings.log.

Kontext und Recherche (mcp:read)

Diese Tools lesen nur. Sie kosten keine Credits und rufen kein KI-Model auf.

ToolZweck
readServerInfoStatus des Servers mit den Versionen von TYPO3, AI Suite und MCP, der aktiven Konfiguration und einer Diagnose
readPageTreeSeitenbaum durchlaufen, begrenzt auf die Mounts des Benutzers
readPageContentInhaltselemente einer Seite lesen, optional mit Container-Verschachtelung
readContentTreeInhalte aller Seiten eines Teilbaums auf einmal, seitenweise paginiert
readRenderedPageDie Seite wie ein Besucher sie sieht, inklusive Plugin-Ausgabe. Benötigt zusätzlich enable_mcp_rendered_page_read
readEditorialGuidelinesDie von der Redaktion hinterlegten Vorgaben zu Tonalität, Zielgruppe und Stil für einen Seitenbereich
readChildrenContainer- und IRRE-Kinder eines Datensatzes auflisten, nach Relation gruppiert
searchContentVolltextsuche über Seiten und Inhaltselemente. Seit Version 0.6.0 werden IRRE-Kindtabellen wie Akkordeon- oder Card-Elemente automatisch anhand der TCA mitdurchsucht, der Treffer nennt das passende Feld und alle durchsuchten Tabellen, und gesucht wird im Stand des aktuellen Workspace statt im Live-Datensatz. Seit Version 0.7.0 trägt jeder Treffer languageUid und, sofern die Seite zu einer Site gehört, deren ISO-Sprachkürzel. Bleibt die Suche ohne Treffer, nennt die Antwort die durchsuchten Tabellen, damit „nichts gefunden“ nicht mit „existiert nicht“ verwechselt wird
listFilesDateien eines FAL-Storage oder -Ordners auflisten
readFileInfoMetadaten einer einzelnen Datei
listStaleContentSeiten und Inhalte finden, die seit N Tagen nicht mehr bearbeitet wurden
readTaskStatusFortschritt eines Hintergrund-Tasks
readTaskResultsErgebnisse eines abgeschlossenen Tasks abrufen, rein lesend

Datensätze: Schema und Bearbeitung (mcp:read / mcp:write)

Die erkundenden Tools dieser Gruppe gehören zu mcp:read, die schreibenden zu mcp:write. Alle Schreibvorgänge laufen über den DataHandler und damit über die üblichen TYPO3-Prüfungen, und sie folgen dem eingestellten Schreibmodus.

ToolScopeZweck
listTablesmcp:readTabellen auflisten, die der Benutzer lesen darf, abzüglich mcpExcludedTables
readRecordSchemamcp:readTCA-Schema einer Tabelle mit Feldern, Typen, Validierung, Relationen und Schreibbarkeit. Seit Version 0.6.0 nennt es bei Rich-Text-Feldern zusätzlich die HTML-Tags, die das Feld beim Speichern behalten darf
readFlexFormSchemamcp:readInneres Schema eines FlexForm-Feldes mit Sheets und Feldern
listPageTypesmcp:readVerfügbare Seitentypen (Doktypes)
listContentTypesmcp:readVerfügbare CTypes und gültige Spalten einer Seite
readRecordsmcp:readDatensätze lesen, per UID, per Seite oder per Feldfilter. Mit fields liefert der Aufruf seit Version 0.6.0 nur die angeforderten Spalten statt aller Felder. Seit Version 0.7.0 liest rootPageId eine Seite samt allem darunter in einem Aufruf, und fullText gibt lange Textfelder ungekürzt zurück
compareWithLivemcp:readFeldweiser Vergleich eines Workspace-Entwurfs mit dem Live-Stand
previewRecordsmcp:writeVorschau einer Schreiboperation als alt-neu-Diff, ohne zu speichern
writeRecordsmcp:writeDatensätze anlegen oder ändern, optional als atomarer Batch. Seit Version 0.6.0 versteht die Positionsangabe auch before:UID. Seit Version 0.7.0 kann ein Eintrag über translations seine Übersetzungen gleich mitbringen
copyRecordsmcp:writeDatensätze kopieren, einzeln oder als Batch
moveRecordsmcp:writeDatensätze verschieben
deleteRecordsmcp:writeDatensätze löschen (Soft-Delete). Als destruktiv markiert, der Client fragt daher nach
localizeRecordmcp:writeÜbersetzung eines Datensatzes anlegen, ohne KI und ohne Credits. Erzeugt nur die leere Hülle, die Feldinhalte schreibst du selbst
savePageTreemcp:writeEinen erzeugten Seitenbaum speichern. Neue Seiten landen seit Version 0.6.0 standardmäßig am Ende, alternativ steuerbar mit start, after:UID und before:UID
replaceTextmcp:writeEine wörtliche Ersetzung in einem Feld, ohne das ganze Feld neu zu senden
patchTextmcp:writeMehrere Ersetzungen in einem Feld, atomar angewendet
bulkReplaceTextmcp:writeDieselbe Ersetzung über alle Kind-Datensätze eines Elternteils. Seit Version 0.6.0 auch seitenweise über pageIds für bis zu 50 Seiten, mit mehreren Regeln in einem Durchlauf und einem dryRun zur Vorabprüfung
copyMediaReferencemcp:writeDateireferenz von einem Feld auf ein anderes kopieren
replaceMediaReferencemcp:writeDie Datei hinter einer bestehenden Referenz austauschen

Übersetzungen direkt mitschreiben

Seit Version 0.7.0 kann ein Eintrag in writeRecords neben fields ein Objekt translations tragen, dessen Schlüssel die ISO-Sprachkürzel sind. Damit entstehen der Datensatz und seine Übersetzungen in einem Aufruf.

{
  "records": [{
    "table": "tt_content",
    "pid": 354,
    "fields": { "CType": "text", "header": "Einstellungen" },
    "translations": { "en": { "header": "Settings" } }
  }]
}

Die Übersetzungshülle entsteht über TYPO3s eigenen localize-Befehl, also denselben Weg, den auch das Backend nimmt. Sprachfeld, Übersetzungs-Elternteil, l10n_source, l10n_state, ausgeschlossene Felder und vorhandene Inline-Kinder übernimmt damit der TYPO3-Kern. Anschließend werden die angegebenen Felder in diese Hülle geschrieben. Angelegt wird sie versteckt, genau wie TYPO3 es tut.

Derselbe Aufruf ein zweites Mal abgesetzt aktualisiert die vorhandene Übersetzung, statt eine zweite anzulegen. Ein Batch nach einem Teilfehler erneut zu senden ist also unbedenklich. translations funktioniert auch bei einem Eintrag mit uid, dann gilt dieser Datensatz als Ausgangspunkt. Verschachtelte Inline-Kinder lassen sich im selben Aufruf nicht übersetzen. Schreibe sie zuerst und übersetze sie danach über ihre UID.

Feldnamen bei Übersetzungen

Bei Übersetzungen kollidieren zwei Schreibweisen aus der TYPO3-Geschichte. tt_content hat das alte l18n_parent behalten, während pages und die meisten selbst geschriebenen Kindtabellen l10n_parent verwenden. Seit Version 0.7.0 akzeptiert die AI Suite MCP beim Lesen und beim Schreiben beide Varianten und bildet sie auf den Namen ab, den die Tabelle tatsächlich führt. Dasselbe gilt für l10n_source und l18n_source. Das Ergebnis vermerkt, wenn eine solche Umbenennung stattgefunden hat. Ein Feldname, den die Tabelle wirklich besitzt, wird nie umgeschrieben.

KI-Funktionen (Generierung, Übersetzung, Bilder)

Diese Tools rufen die Anbieter und Models der AI Suite auf und verbrauchen dann Credits. Welche Models zur Verfügung stehen, ergibt sich aus der AI Suite-Konfiguration und den Modelrechten der Backend-Gruppe. In AI Suite MCP ist dafür keine zusätzliche Einstellung nötig.

Sie sind damit die einzigen Tools, die einen gültigen API-Key der AI Suite voraussetzen. Fehlt er oder deckt das Lizenzpaket die Funktion nicht ab, bleiben die Tools in der Tool-Liste stehen und werden vom Model auch aufgerufen. Der Aufruf endet dann mit einem Lizenzfehler. Das unterscheidet sie von den Feature-Rechten der Backend-Gruppe, die ein Tool bereits aus der Liste entfernen.

Seit Version 0.7.0 gilt das für translateRecord und translatePage nur noch dann, wenn du den optionalen Parameter model angibst. Lässt du ihn weg, legt das Tool den Übersetzungs-Datensatz an und gibt dir dessen Felder zurück, zusammen mit dem Glossar der Site und den globalen Anweisungen. Übersetzt wird dann vom Model deines Clients, es geht nichts an den AI Suite Server und es kostet keine Credits. Die Antwort nennt außerdem die Models, die dir zur Verfügung stehen, falls du doch serverseitig übersetzen willst. Kommen Felder unverändert zurück, weist das Ergebnis darauf hin, damit eine ausgebliebene Übersetzung nicht unbemerkt bleibt.

Zu unterscheiden ist das von localizeRecord unter mcp:write. Jenes legt nur die leere Übersetzungshülle an. translateRecord ohne model legt die Hülle an und reicht dir zusätzlich die zu übersetzenden Feldinhalte heraus.

Bei translateFileMetadata und den Batch-Tools gibt es diesen Weg nicht. Ohne model liefern sie lediglich die Liste der verfügbaren Models zurück, die eigentliche Übersetzung läuft dort immer über den Server und kostet Credits.

ToolScopeZweck
generateFileMetadatamcp:generateAlternativtext, Titel und Beschreibung für eine Datei erzeugen, auf Basis der Datei selbst
translateRecordmcp:translateEinen einzelnen Datensatz übersetzen, mit model serverseitig, ohne model kostenlos durch das Model deines Clients
translatePagemcp:translateEine ganze Seite übersetzen, Metadaten und alle Inhaltselemente, ebenfalls wahlweise serverseitig oder kostenlos durch das Model deines Clients
translateFileMetadatamcp:translateDatei-Metadaten in eine Zielsprache übersetzen, immer serverseitig
generateImagemcp:imageEin Bild aus einer Textbeschreibung erzeugen und in FAL ablegen

Leichte Sprache und das DeepL-Glossar der Site sind kein eigenes Tool, sondern Bestandteil der Übersetzungs-Tools. Das Glossar wird automatisch angewendet.

Medien einbinden

Dieses Tool bringt vorhandene Dateien in die Dateiverwaltung, ohne ein KI-Model zu bemühen. Es kostet keine Credits und funktioniert auch ohne gültigen API-Key der AI Suite. Es hängt an einem eigenen Scope und einem eigenen Feature-Recht, beide standardmäßig aus, weil es als einziges Tool neben generateImage eine physische Datei anlegt und deshalb nicht über einen Workspace zurückgenommen werden kann.

ToolScopeZweck
uploadMediamcp:mediaVorhandene Bilder oder Videos in FAL übernehmen, per URL, als Base64 oder als YouTube- bzw. Vimeo-Link

Nicht zu verwechseln mit copyMediaReference und replaceMediaReference. Die beiden hängen keine neue Datei ein, sondern setzen bestehende Dateireferenzen um, gehören deshalb zu mcp:write und stehen in der Datensatz-Gruppe. Zu Zielordner, Größengrenze, erlaubten Dateiendungen und der Absicherung entfernter Downloads siehe Sicherheit & Betrieb.

Hintergrund-Tasks (mcp:workflow)

Batch-Tools laufen asynchron. Sie liefern sofort eine Task-ID zurück, der Fortschritt wird mit readTaskStatus abgefragt und die Ergebnisse mit readTaskResults gelesen. Geschrieben wird nichts davon automatisch. Ein Batch-Prozess erzeugt Vorschläge, und erst applyTaskResults schreibt sie in die Datensätze.

ToolZweck
batchGenerateMetadataSeiten-Metadaten in großer Zahl, entweder für eine UID-Liste oder für einen ganzen Seiten-Teilbaum
batchGenerateFileMetadataDatei-Metadaten für eine Liste von Dateien
batchGenerateFolderMetadataDatei-Metadaten für alle Dateien eines Ordners
batchTranslatePageMehrere Seiten übersetzen
batchTranslateFileMetadataDatei-Metadaten einer Dateiliste übersetzen
batchTranslateFolderMetadataDatei-Metadaten aller Dateien eines Ordners übersetzen
applyTaskResultsDie Übersetzungen eines fertigen Batch-Prozesses in die Lokalisierungs-Datensätze schreiben (Scope mcp:write)

batchGenerateMetadata nimmt seine Ziele auf genau einem von zwei Wegen. Entweder pageIds als ausdrückliche UID-Liste oder rootPageId als Seite samt allem darunter. Beides zusammen ist ein Fehler, nichts davon ebenfalls. recursive entscheidet, ob ein rootPageId den ganzen Teilbaum durchläuft oder bei den direkten Kindern stehen bleibt. Die Wurzelseite ist immer dabei.

Audits (mcp:read)

Seit Version 0.8.0 stellt der Server sieben Tools rund um Audits bereit. Gegenüber TYPO3 lesen sie nur, sie geben aber die Seiten-URL und damit den Seiteninhalt an die AutoDudes-Audit-Infrastruktur weiter. Deshalb hängen alle sieben zusätzlich an der eigenen Berechtigung enable_audit, siehe Berechtigungen & Scopes.

ToolKostenZweck
auditSeo3 CreditsVollständiges SEO-Audit einer öffentlich erreichbaren URL: technische On-Page-Checks, Lighthouse-Werte inklusive Core Web Vitals echter Nutzer und Signale zur KI-Sichtbarkeit. Mit keyword kommen SERP-Position, Top-10-Wettbewerb und Suchvolumen hinzu. Die Funde sind nach Schwere und Behebbarkeit sortiert
auditAccessibility3 CreditsBarrierefreiheits-Audit nach WCAG 2.1 AA, geprüft mit axe-core und HTML_CodeSniffer über pa11y. Liefert die Anzahl von Fehlern, Warnungen und Hinweisen, die größten Problemgruppen mit Auswirkung und Beispiel-Selektoren sowie die Einzelfunde mit Behebbarkeit
auditQuestions2 CreditsFragen-Abdeckung der Seite. Mit keyword kommen die echten „Nutzer fragen auch“-Fragen aus den Suchergebnissen hinzu, dazu KI-abgeleitete Fragen. Jede Frage wird gegen den Seiteninhalt als beantwortet, teilweise beantwortet oder offen bewertet
auditContentGap3 CreditsKeywords, für die die Seite bereits rankt, aber zu schwach für Traffic. Mit öffentlichen Ranking-Daten zu Suchvolumen, Position und Schwierigkeit, je Keyword gegen den Seiteninhalt bewertet
auditTopicCluster3 CreditsThemencluster rund um ein Fokus-Keyword, also die Auffächerung des Themas in Unterthemen und Suchanfragen, je Unterthema gegen den Seiteninhalt bewertet. keyword ist hier Pflicht
auditCompetitors3 CreditsWettbewerber der Domain mit gemeinsamen Keywords und geschätztem Traffic, dazu der Keyword-Gap gegen den stärksten Wettbewerber, also Keywords, für die er rankt und diese Domain nicht
readAuditResultskostenfreiLiest die zu einer TYPO3-Seite bereits gespeicherten Audit-Ergebnisse aller sechs Arten. Startet kein neues Audit. Ohne auditType kommt eine Übersicht, mit auditType das vollständige gespeicherte Ergebnis einer Art. Benötigt Leserecht auf die Seite

Parameter der Audit-Tools

Die sechs prüfenden Tools erwarten in url eine absolute, öffentlich erreichbare http(s)-Adresse. TYPO3-interne Links wie t3://page?uid=1 lassen sich nicht auditieren, die öffentliche URL muss vorher aufgelöst werden. Ein keyword ist auf 200 Zeichen begrenzt.

Die vier Analyse-Tools auditQuestions, auditContentGap, auditTopicCluster und auditCompetitors nehmen darüber hinaus drei gemeinsame Parameter:

ParameterBedeutung
modelTextmodell für die KI-Bewertung der Abdeckung, zum Beispiel ChatGPT. Ohne Angabe wird das erste Modell verwendet, das dem Benutzer zur Verfügung steht
marketSuchmarkt als ISO-Locale, etwa de-DE oder de-AT. Ohne Angabe wird die Standardsprache der Site verwendet, zu der die URL gehört. Für URLs außerhalb dieser Instanz ist der Parameter Pflicht
languageZweibuchstabige Sprache der Analysetexte, Standard de

readAuditResults arbeitet stattdessen über pageId, optional eingegrenzt mit auditType und language. Gespeicherte Ergebnisse liegen je Sprache getrennt.