Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
| Datei oder Ordner | Zweck |
|---|---|
.claude-plugin/plugin.json |
Plugin-Manifest (syliusadmin), verweist auf skills/ und .mcp.json |
.claude-plugin/marketplace.json |
Marketplace-Eintrag claude-plugin-syliusadmin mit dem Plugin syliusadmin |
.mcp.json |
Registriert zwei stdio-Server: syliusadmin-stage-mcp und syliusadmin-prod-mcp |
bin/run-server, bin/run-server.cmd |
Starter für POSIX und Windows, rufen den venv-Interpreter mit run.py auf |
servers/syliusadmin-server/run.py |
Einstiegspunkt: wählt und lädt die .env, baut Client und Server, startet stdio |
servers/syliusadmin-server/src/syliusadmin/ |
Server-Code |
skills/setup/, skills/sylius-produkt-wizard/ |
Die zwei Skills |
Beide Server laufen aus derselben Codebasis. Sie unterscheiden sich nur durch die Variable SYLIUS_ENV_NAME, die run.py in den Pfad der jeweiligen .env übersetzt. Der Server meldet sich gegenüber Claude als sylius-admin-<umgebung> und nennt die Umgebung in seinen Anweisungen.
SyliusClient gleicht Methode und Pfad gegen die Allowlist ab. Außerdem lehnt er Formularfelder ab, die mit _method beginnen.POST /api/v2/admin/administrators/token, wird im Speicher gehalten und 30 Sekunden vor Ablauf neu geholt.Authorization: Bearer ..., Accept: application/json und, falls konfiguriert, X-Stage-Api-Key. Das HTTP-Timeout beträgt 30 Sekunden.SyliusApiError (mit Status, Methode, Pfad, Umgebung und höchstens 500 Zeichen Detail). Ein leerer Body oder 204 wird zu null.ToolError umgewandelt, damit Claude die ursprüngliche Meldung sieht statt eines allgemeinen Tool-Fehlers.| Thema | Verhalten |
|---|---|
| Update-Methode | Aktualisierungen laufen als PUT, nicht PATCH, weil Sylius für diese Ressourcen keinen Merge-Patch registriert. |
| Übersetzungen | Beim Ändern bestehender Übersetzungen liest der Server die vorhandenen Locales und sendet sie mit ihrer @id (JSON-LD), damit Sylius sie an Ort und Stelle aktualisiert statt neue Einträge anzulegen. |
| Preise | update_variant_channel_pricing liest die bestehenden Channel-Preise und sendet die vollständige Sammlung, damit andere Channels nicht verloren gehen. |
| Collection-Antworten | Der Server akzeptiert die nackte Liste sowie die member- und hydra:member-Hülle. |
| Archivieren | archive_shipping_method und restore_shipping_method sind PATCH-Aufrufe ohne Body. |
| Bild-Upload | Multipart-Formular mit Datei; ein CDN-Bild wird als Multipart-Formular ohne Datei gesendet. |
| Konfiguration laden | load_dotenv(..., override=True): die Datei gewinnt gegen bereits gesetzte SYLIUS_*-Variablen. |
| Caching, Rate-Limiting | Außer dem Token im Speicher gibt es weder Cache noch eigenes Rate-Limiting. |
Alle Pfade liegen unter /api/v2/admin/.
| Ressource | Zugriff |
|---|---|
administrators/token |
Login |
products (inklusive images und translations) |
Lesen und Schreiben |
product-variants |
Lesen und Schreiben (inklusive Channel-Preise) |
taxons (inklusive images und translations) |
Lesen und Schreiben |
product-attributes, product-options |
Lesen und Anlegen |
zones, countries |
Lesen, Anlegen, Ändern |
shipping-methods (inklusive archive und restore), shipping-categories, tax-categories |
Lesen, Anlegen, Ändern |
product-marketplace-links |
Lesen, Anlegen, Ändern, Löschen |
channels, product-custom-input-fields |
Nur lesen |
servers/syliusadmin-server/
├── run.py # Einstiegspunkt, .env-Auswahl
└── src/syliusadmin/
├── server.py # create_server()-Factory, Tool-Registrierung
├── config.py # SyliusConfig aus der Umgebung
├── sylius_client.py # HTTP-Client, JWT, Scope-Allowlist
└── tools/
├── _errors.py # SyliusError wird zu ToolError
├── _codes.py # Code-Validierung
├── _translations.py # Zusammenführen von Übersetzungen, SEO-Felder
├── products.py
├── variants.py
├── taxons.py
├── attributes.py
├── options.py
├── product_images.py
├── channels.py
├── countries.py
├── zones.py
├── shipping_categories.py
├── shipping_methods.py
├── tax_categories.py
├── marketplace_links.py
└── custom_input_fields.py
| Eigenschaft | Wert |
|---|---|
| Transport | stdio |
| MCP-SDK | mcp ab 2.0.0, unter 3.0.0 |
| HTTP-Client | httpx 0.28.x |
| Konfiguration | python-dotenv ab 1.2.0, unter 2.0.0 |
| Nebenläufigkeit | anyio ab 4.9, unter 5.0.0 |
| Python | 3.12 oder neuer |
Tools, die nur lesen, sind mit dem MCP-Hinweis read_only markiert. Schreibende Tools tragen die entsprechenden Hinweise, Ersetzungen und das Löschen von Marketplace-Links sind als destructive gekennzeichnet.