SAP Commerce MCP Server
SAP Commerce MCP-Server
Dieses Projekt stellt einen MCP-Server für SAP Commerce Cloud bereit, der sich auf ASM-Mitarbeiter-Workflows konzentriert: Kundensuche, Identitätswechsel (Impersonation), Binden oder Verwalten eines Warenkorbs sowie die Durchführung von OCC-gestützten Commerce-Aktionen durch aufgabenorientierte MCP-Tools.
Das Repository wird nun als Local-First behandelt: Das erwartete Standardziel ist https://localhost:9002, wobei SAP_BASE_URL den tatsächlichen Host steuert. Remote-Mandanten können weiterhin verwendet werden, aber die Dokumentation, Tests und Validierungsabläufe sollten die lokale SAP Commerce-Laufzeitumgebung als primäre Quelle betrachten.
Was dieser Server aktuell leistet
ASM-fokussierte Kundenaktionen: Kundensuche, Identitätswechsel eines Kunden und fortgesetztes Handeln in dessen Namen
Sitzungsbewusste Warenkorbverwaltung: Erstellen, Prüfen, Aktualisieren, Entfernen und Leeren von Warenkörben ohne manuelles Hin- und Herwechseln
Checkout-Ablauf: Lieferadresse, Lieferart, Gast-E-Mail und Auftragserteilung
Produkt- und Discovery-Tools: Produktsuche, Abrufen von Details, Prüfen von Lagerbeständen, Durchsuchen von Basissites/Shops/Katalogen/Kategorien
Zwei Tool-Ebenen: Agentenfreundliche High-Level-Tools sowie Low-Level OCC/ASM-Wrapper
Sitzungsorientierung:
get_session_statushilft Agenten, den aktuellen Kontext von Warenkorb/Benutzer/Basissite zu verstehenFastMCP-Transport: stdio- und SSE-Transporte für lokale oder Remote-MCP-Clients
Wie ein Request abläuft
1. Architektur auf einen Blick

Quelle: docs/diagrams/architecture.mmd
2. Beispiel-Request-Swimlane
Dies ist der typische Pfad: „Agent übernimmt die Identität eines Kunden und kauft dann in dessen Namen weiter ein“.

Quelle: docs/diagrams/example-request.mmd
MCP-Tools
High-Level-Tools
Dies sind die Hauptschnittstellen für ASM-Mitarbeiter-Workflows.
Discovery und Produkte
search_products— Produktsuche per Schlüsselwortget_product— Abrufen eines Produktdetailsget_session_status— Überprüfen des aktuellen Sitzungsstatus
Kunde / ASM
search_customer— Schnelles Finden eines Kundenimpersonate_customer— Handeln als Kunde startenend_impersonation— Zurück zum anonymen Modus
Warenkorb und Checkout
add_to_cart— Ein Produkt hinzufügenget_cart— Aktuellen Warenkorb lesenupdate_cart_entry— Positionsmenge ändernremove_from_cart— Eine Position löschenclear_cart— Warenkorb leerenset_delivery_address— Lieferadresse hinzufügenset_delivery_mode— Versandart wählenget_delivery_modes— Versandoptionen auflistenset_guest_email— E-Mail für Gast-Checkout festlegenplace_order— Bestellung absenden
Low-Level-Tools
Diese bieten engere OCC / ASM-Primitive für eine exakte Steuerung.
basesites.list— Verfügbare Basissites auflistencatalogs.list— Kataloge für eine Site auflistencatalogs.get— Einen Katalog abrufencatalogVersions.get— Eine Katalogversion abrufencategories.products— Produkte nach Kategorie durchsuchenstores.list— Shops für eine Site auflistenstores.get— Einen Basis-Shop abrufenproducts.get— Ein OCC-Produkt abrufenproducts.stock— Lagerbestandsdaten prüfenproducts.stockCount— Lagerorte zählenasm.customer360— Customer-360-Fragmente abrufenasm.customers.create— Einen Kunden erstellenasm.customers.search— ASM-Kundensuche ausführenasm.customers.suggest— Kundenvorschläge erhaltencarts.list— Warenkörbe auflistencarts.create— Warenkorb erstellen oder wiederherstellencarts.get— Einen Warenkorb abrufencarts.delete— Einen Warenkorb löschencartEntries.list— Warenkorbpositionen auflistencartEntries.add— Eine Position hinzufügencartEntries.get— Eine Position abrufencartEntries.update— Positions-Payload ersetzencartEntries.patch— Position teilweise aktualisierencartEntries.delete— Eine Position löschen
Konfiguration
Abhängigkeiten installieren:
uv syncUmgebungsvorlage kopieren:
cp .env.example .envFür die lokale SAP Commerce-Instanz festlegen:
SAP_BASE_URL=https://localhost:9002Behalten oder passen Sie diese Pfadfragmente an, falls Ihre SAP-Bereitstellung abweicht:
OCC_API_PATH=/occ/v2OAUTH_PATH=/authorizationserver/oauth/tokenASM_PATH=/assistedservicewebservices
Konfigurieren Sie OAuth-Anmeldeinformationen für den lokalen Mandanten oder den Remote-Mandanten, gegen den Sie validieren. Für das standardmäßige lokale Sample-Data-Setup sind dies die erwarteten Standardwerte:
OAUTH_CLIENT_ID=mobile_android OAUTH_CLIENT_SECRET=secret OAUTH_USERNAME=asmagent OAUTH_PASSWORD=nimda OAUTH_SCOPE=basic
Ausführung
Stdio:
python -m app.serverSSE:
fastmcp serve app/server.py --sse :8080
Testen
Vollständige Verifizierungssuite:
uv run ruff check app tests uv run mypy app uv run pytest -qSmoke-Tests:
uv run pytest tests/integration/test_smoke.py -qLive-Discovery-Ablauf:
uv run pytest tests/integration/test_integration_live.py -s
Hinweis Live-Tests dienen dazu, den aktuellen Vertrag gegen eine echte SAP Commerce-Laufzeitumgebung zu validieren. Wenn
SAP_BASE_URL=https://localhost:9002gesetzt ist, sollte die lokale OCC/ASM-Instanz das primäre Ziel sein. Wenn OAuth- oder ASM-Daten falsch konfiguriert sind, diagnostizieren Sie dies lokal, bevor Sie den Umfang erweitern.
Lokaler SAP-Hinweis Einige lokale SAP 2211-Stacks enthalten
messagecentercsocc, dessen späterOauth2UserFilterden/users/{customerId}-Kontext im Auftrag des Kunden wieder mit dem authentifizierten Agenten überschreiben kann. Wenn Warenkorb-Aufrufe vonasmagentzuEmployeeModel -> CustomerModel-Cast-Fehlern führen, patchen Sie diesen Filter so, dass er den bereits zugeordneten Kunden beibehält, wenn sich der aktuelle OCC-Benutzer vom OAuth-Principal unterscheidet.
Qualitäts-Gates
Ruff für Linting und Import-Hygiene
Mypy für ein praktisches statisches Typ-Gate über
app/Pytest + coverage.xml, damit SonarQube dieselben lokalen Nachweise verwenden kann wie in der CI
Lokale SonarQube-Analyse kann veröffentlicht werden mit:
uv run pytest -q
sonar-scannersonar-project.properties ist eingecheckt, sodass lokale Scans und CI-Scans denselben Projektschlüssel/Quell-Layout verwenden.
Dokumentation
Workflows — praktische Tool-Call-Sequenzen
Architektur Mermaid — Quelle für das Systemdiagramm
Request Mermaid — Quelle für das Swimlane-Diagramm
MCP-Manifest und Tool-Registrierung:
app/server.pyBeitrag-Leitfaden:
AGENTS.md
Zukünftige Verbesserungen
Hinzufügen eines optionalen externen Backing-Stores nur, falls das Projekt später eine Multi-Prozess- oder horizontal skalierte Sitzungspersistenz benötigt
Unterstützte OCC / ASM-Abdeckung
Der aktuelle Server deckt die für die oben genannten Abläufe erforderlichen Endpunkte ab, einschließlich Basissites, Kataloge, Shops, Produkte, Warenkörbe, Warenkorbpositionen, Checkout-Adress-/Liefervorgänge, Auftragserteilung sowie ASM-Kundensuche / Customer 360 / Warenkorb-Bindungs-Operationen.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/commerce-cloud-integrations/sap-commerce-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server