Markus Michalski FAQ

Shopware Admin: Tool-Referenz

Alle 42 Tools des Shopware Admin MCP-Servers mit Parametern, Grenzwerten und Rückgaben: Produkte, Content, Kategorien, Mail-Templates, Flows, Medien, Bestellungen, Cross-Selling, SEO-URLs.

English Version

Zurück zur Übersicht

Shopware Admin: Tool-Referenz

Diese Dokumentation bezieht sich immer auf den aktuellen Stand des main-Branches.

Der Server stellt 42 Tools bereit. Die Grenzwerte unten stammen aus der Eingabeprüfung (Zod), die jeden Aufruf vor der Ausführung validiert.

Bereich Anzahl Tools
Produkte 6 product_create, product_get, product_list, product_update, product_set_active, search_products
Content 4 product_generate_content, product_generate_seo, variant_generate_content, content_update
Kategorien 4 category_list, category_get, category_generate_content, category_update
Hilfen 3 get_properties, get_manufacturers, snippet_list
Mail-Templates 4 mail_template_list, mail_template_get, mail_template_update, mail_template_send_test
Flows 3 flow_list, flow_get, flow_toggle
Medien 6 media_list, media_get, media_update, media_search, media_audit_alt, media_upload_url
Bestellungen 3 order_list, order_get, order_stats
Cross-Selling 5 cross_selling_list, cross_selling_get, cross_selling_create, cross_selling_update, cross_selling_suggest
SEO-URLs 4 seo_url_list, seo_url_audit, seo_url_update, seo_url_generate

Allgemeine Regeln

Produkte

Tool Parameter Verhalten
product_create Pflicht: name (1 bis 255), productNumber (1 bis 64), price (brutto, größer 0), categoryId. Optional: description (HTML, bis 65535), ean (bis 50), manufacturerId, taxId, stock (ganzzahlig, ab 0, Standard 0), salesChannelId, tags, searchKeywords Legt das Produkt immer inaktiv an, mit Sichtbarkeit "überall" im Verkaufskanal. Der Preis wird als Brutto in der Standard-Währung gespeichert, der Nettopreis aus SHOPWARE_DEFAULT_TAX_RATE berechnet. Tags werden bei Bedarf angelegt. Eine doppelte Artikelnummer ergibt PRODUCT_NUMBER_EXISTS. Rückgabe: id, productNumber, name, active.
product_get id oder productNumber (eines von beiden) Liefert Produkt mit Kategorien, Hersteller, Varianten samt Optionen, Eigenschaften und Medien. Wird 5 Minuten zwischengespeichert.
product_list categoryId, active, search (bis 255, sucht in Name und Artikelnummer), limit (1 bis 100, Standard 25), offset Rückgabe: products und total.
product_update Pflicht: id. Optional: name, price, description, ean, stock, manufacturerId, customFields (bis 50 Felder, Werte Text bis 5000, Zahl, Wahrheitswert oder null), metaTitle, metaDescription, keywords (je bis 255), tags, searchKeywords Schreibt über die Sync-API (Upsert mit der Versions-ID des Produkts). Der Preis ist Brutto, der Nettopreis kommt aus SHOPWARE_DEFAULT_TAX_RATE.
product_set_active id, active Aktiviert oder deaktiviert das Produkt.
search_products query (2 bis 255), limit (1 bis 50, Standard 20) Volltextsuche. Rückgabe: id, productNumber, name, active.

Content

Diese Tools erzeugen keinen Text. Sie liefern Kontext und Vorgaben, den Text schreibt Claude. Gespeichert wird er mit content_update.

Tool Parameter Verhalten
product_generate_content Pflicht: productId. Optional: style, maxLength (200 bis 5000, Standard 1000), includeSnippets (Standard true), snippetIds Rückgabe: style, profile, context, wikiUrl (immer null), availableSnippets, maxLength und prompt. Der Prompt-Text ist deutsch und enthält Produktdaten, Eigenschaften, Profil-Vorgaben und die ersten 500 Zeichen der bestehenden Beschreibung ohne HTML. Textbausteine kommen nur bei einem Profil mit includeSnippets: true.
product_generate_seo Pflicht: productId. Optional: style, maxTitleLength (30 bis 70, Standard 60), maxDescriptionLength (100 bis 160, Standard 155) Rückgabe: style, profile, productName, categoryPath, existingDescription, constraints und prompt.
variant_generate_content Pflicht: variantId. Optional: inheritFromParent (Standard true), focusOnOptions (Standard true) Prompt für die Varianten-Beschreibung, feste Länge 500. inheritFromParent hat keine Wirkung: Der Server lädt kein Elternprodukt, der Prompt beruht auf der Variante selbst. Auch die Stil-Erkennung läuft automatisch über die Kategorien der Variante, einen style-Parameter gibt es nicht.
content_update Pflicht: productId. Optional: description (bis 65535), metaTitle, metaDescription, keywords (je bis 255) Speichert über dasselbe Update wie product_update. Rückgabe: productId und die Liste der geänderten Felder.

Kategorien

Tool Parameter Verhalten
category_list parentId, depth (1 bis 10, Standard 3), includeInactive (Standard false) Flache Liste mit bis zu 500 Kategorien. Mit parentId nur direkte Kinder. children ist immer leer, depth ändert das Ergebnis nicht. productCount ist die Zahl der Unterkategorien. Wird 10 Minuten zwischengespeichert.
category_get Pflicht: id. Optional: includeProducts (Standard false), productLimit (1 bis 100, Standard 25) Kategorie mit Breadcrumb und SEO-Daten, optional mit Produktliste.
category_generate_content Pflicht: id. Optional: style, maxLength (100 bis 2000, Standard 500) Rückgabe: Kategorie (id, name, breadcrumb), style, maxLength und eine kurze englische Anweisung mit Anrede, Ton und Zielgruppe des Profils.
category_update Pflicht: id. Optional: description (bis 65535), metaTitle, metaDescription, keywords (je bis 255) Aktualisiert die Felder und leert danach den gesamten Cache des Servers.

Hilfen

Tool Parameter Verhalten
get_properties groupId Eigenschaftsgruppen mit Optionen, bis zu 100 Gruppen, nach Position sortiert.
get_manufacturers search (bis 100), limit (1 bis 100, Standard 50) Hersteller mit Link, Beschreibung und Logo. Die Liste ohne Suche wird 10 Minuten zwischengespeichert.
snippet_list activeOnly (Standard true) Textbausteine des Plugins mit der Entität mmd-product-snippet, bis zu 100, mit identifier, name und active.

Mail-Templates

Es gibt kein Anlegen und kein Löschen von Templates.

Tool Parameter Verhalten
mail_template_list search (Typname oder Betreff), limit (1 bis 100, Standard 50), offset Rückgabe: Templates mit technicalName, typeName, subject, systemDefault, updatedAt sowie count und total.
mail_template_get id oder technicalName Details mit Betreff, HTML- und Text-Inhalt und dem Mail-Typ samt verfügbaren Entitäten für Twig. Wird 10 Minuten zwischengespeichert.
mail_template_update Pflicht: id. Optional: subject (1 bis 998), contentHtml, contentPlain (je bis 16777215), senderName (bis 255), description (bis 65535) Ändert nur übergebene Felder. Twig-Syntax bleibt unverändert im Inhalt.
mail_template_send_test Pflicht: mailTemplateId, recipient. Optional: salesChannelId Sendet das Template im Testmodus (Shopware setzt Beispieldaten für Twig-Variablen). Der Empfänger muss eine gültige E-Mail-Adresse bis 254 Zeichen sein und darf weder localhost enthalten noch eine IP-Adresse als Domain haben. Begrenzt auf 5 Aufrufe je Template und 10 insgesamt pro Minute (RATE_LIMITED).

Flows

Tool Parameter Verhalten
flow_list active, eventName (exakt), search (Name oder Beschreibung), hasMailAction, limit (1 bis 100, Standard 50), offset Liste mit actionCount und hasMailAction. Als Mail-Aktion zählen action.mail.send und action.mail.send.create.document. Der Filter hasMailAction wirkt erst nach der Seitenabfrage, total zählt dann nur die gefilterte Seite.
flow_get id oder name (exakt) Flow mit Sequenzen als Baum nach Position, inklusive Regel. Wird 5 Minuten zwischengespeichert.
flow_toggle id, active Schaltet den Flow ein oder aus und gibt den aktualisierten Flow zurück.

Medien

Tool Parameter Verhalten
media_list mediaFolderId, mimeTypePrefix (Format typ/, etwa image/), hasAlt, limit (1 bis 100, Standard 25), offset Neueste zuerst. hasAlt: false liefert Medien ohne Alt-Text (NULL). Rückgabe: count, total, media.
media_get id Details mit Thumbnails, Ordner und Produkten, die das Medium nutzen. Wird 5 Minuten zwischengespeichert.
media_update Pflicht: id. Optional: alt, title (je bis 255) Mindestens eines von beiden ist nötig.
media_search query (2 bis 255), limit (1 bis 50, Standard 20) Volltextsuche über Dateiname, Alt-Text und Titel.
media_audit_alt onlyActive (Standard true), limit (1 bis 200, Standard 100) Sucht Bilder (image/) ohne Alt-Text über die Produkt-Medien-Zuordnung und gruppiert sie je Medium mit den betroffenen Produkten. Das Limit gilt für die abgefragten Zuordnungen. Schlägt die Abfrage fehl, wird der Weg über die Medien-Entität genommen. Rückgabe: totalMediaChecked, missingAltCount, affectedProductCount, items, recommendation.
media_upload_url Pflicht: url (http oder https, bis 2048). Optional: alt, title, mediaFolderId Legt ein Medium an und lässt Shopware die Datei von der URL laden. Dateiname und Endung stammen aus der URL, nicht erlaubte Endungen werden zu jpg. Erlaubt: jpg, jpeg, png, gif, webp, svg, bmp, tiff, tif, pdf, ico. Schlägt der Download fehl, wird das angelegte Medium wieder gelöscht. Interne und private Adressen lehnt die Prüfung ab, siehe Sicherheit.

Bestellungen (nur lesend)

Tool Parameter Verhalten
order_list orderStatus (open, in_progress, completed, cancelled), paymentStatus (open, authorized, paid, paid_partially, refunded, refunded_partially, failed, cancelled, unconfirmed, reminded, chargeback), deliveryStatus (open, shipped, shipped_partially, returned, returned_partially, cancelled), customerEmail (Teilstring), dateFrom, dateTo (YYYY-MM-DD oder YYYY-MM-DDTHH:MM:SS), limit (1 bis 100, Standard 25), offset Neueste zuerst. Rückgabe: count, total, orders mit unter anderem customerName und customerEmail. dateFrom und dateTo gehen unverändert als untere und obere Grenze an Shopware. Ob bei einem reinen Datum der Endtag noch dazugehört, hängt von Shopwares Datumsauslegung ab.
order_get id oder orderNumber Bestellung mit Kunde (auch Firma), Rechnungs- und Lieferadresse (mit Telefonnummer), Positionen, Zahlungen, Lieferungen und Kundenkommentar. Wird 2 Minuten zwischengespeichert.
order_stats dateFrom, dateTo Anzahl, Umsatz (Summe der Bestell-Gesamtbeträge), durchschnittlicher Bestellwert (Durchschnitt der Gesamtbeträge je Bestellung inklusive Versand und Steuer, auf zwei Stellen gerundet), Aufteilung nach Bestell- und Zahlungsstatus, Zeitraum und Währungssymbol. Für die Datumsgrenzen gilt dieselbe Einschränkung wie bei order_list.

Die Bestell-Tools liefern personenbezogene Daten (Name, E-Mail, Adressen, Telefonnummer) in die Konversation mit Claude. Siehe Sicherheit und Datenschutz.

Cross-Selling

Tool Parameter Verhalten
cross_selling_list productId Bis zu 50 Gruppen mit id, name, type, active, position, assignedProductCount.
cross_selling_get id Gruppe mit zugeordneten Produkten und gegebenenfalls Produkt-Stream. Wird 5 Minuten zwischengespeichert.
cross_selling_create Pflicht: productId, name (1 bis 255). Optional: type (productList oder productStream, Standard productList), active (Standard true), position (ab 0, Standard 1), sortBy (name, cheapestPrice, releaseDate, productNumber), sortDirection (ASC, DESC), limit (1 bis 100, Standard 24), assignedProductIds, productStreamId Legt die Gruppe an. Die Reihenfolge von assignedProductIds bestimmt die Position.
cross_selling_update Pflicht: id. Optional: name, active, position, sortBy, sortDirection, limit, assignedProductIds Ändert nur übergebene Felder.
cross_selling_suggest Pflicht: productId. Optional: limit (5 bis 50, Standard 20) Liefert Kontext für Empfehlungen: Quellprodukt mit Eigenschaften, Kandidaten (aktive Produkte aus denselben Kategorien, nur Hauptprodukte ohne Varianten-Kindprodukte) und die Namen bestehender Gruppen. Die Auswahl trifft Claude.

SEO-URLs

Zulässige Werte für routeName: frontend.detail.page (Produkt), frontend.navigation.page (Kategorie), frontend.landing.page (Landingpage).

Tool Parameter Verhalten
seo_url_list routeName, salesChannelId, foreignKey, isCanonical, isDeleted, search (2 bis 255), limit (1 bis 100, Standard 25), offset Nach Pfad sortiert. Rückgabe: urls und total.
seo_url_audit routeName, salesChannelId, limit (10 bis 500, Standard 200) Prüft die ersten URLs (nach Entität sortiert) auf drei Probleme: deleted_url (Warnung), duplicate_path (Fehler, mehrere kanonische URLs mit gleichem Pfad im selben Verkaufskanal) und no_canonical (Fehler, Entität ohne kanonische URL). Bei Begrenzung durch limit können Meldungen unvollständig sein.
seo_url_update Pflicht: id. Optional: seoPathInfo (1 bis 2048), isCanonical, isDeleted Mindestens ein Feld ist nötig. Ein neuer seoPathInfo setzt isModified automatisch auf true.
seo_url_generate routeName, salesChannelId (beide Pflicht) Ruft die Shopware-Aktion /api/_action/seo-url/create-custom-url auf und fällt bei einem Fehler auf /api/_action/seo-url/canonical zurück.