SAP Commerce MCP Server
Servidor MCP de SAP Commerce
Este proyecto expone un servidor MCP para SAP Commerce Cloud centrado en flujos de trabajo de empleados de ASM: buscar un cliente, suplantar su identidad, vincular o gestionar un carrito y completar acciones de comercio respaldadas por OCC a través de herramientas MCP orientadas a tareas.
El repositorio ahora se trata como local-first: el destino predeterminado esperado es https://localhost:9002, con SAP_BASE_URL controlando el host real. Se pueden seguir utilizando inquilinos remotos, pero la documentación, las pruebas y el flujo de validación deben hacer que el tiempo de ejecución local de SAP Commerce sea la fuente de verdad.
Qué hace este servidor ahora
Acciones de cliente centradas en ASM: buscar un cliente, suplantar a un cliente y seguir actuando en su nombre
Gestión de carritos con conocimiento de sesión: crear, inspeccionar, actualizar, eliminar y vaciar carritos sin necesidad de gestionar manualmente los carritos
Flujo de pago: dirección de entrega, modo de entrega, correo electrónico de invitado y realización de pedidos
Herramientas de producto y descubrimiento: buscar productos, obtener detalles, inspeccionar stock, explorar sitios base/tiendas/catálogos/categorías
Dos capas de herramientas: herramientas de alto nivel amigables para agentes más envoltorios de bajo nivel OCC/ASM
Orientación a la sesión:
get_session_statusayuda a los agentes a comprender el contexto actual del carrito/usuario/sitio baseTransporte FastMCP: transportes stdio y SSE para clientes MCP locales o remotos
Cómo fluye una solicitud
1. Arquitectura de un vistazo

Fuente: docs/diagrams/architecture.mmd
2. Carril de ejemplo de solicitud
Este es el camino típico de "el agente suplanta a un cliente y luego sigue comprando en su nombre".

Fuente: docs/diagrams/example-request.mmd
Herramientas MCP
Herramientas de alto nivel
Estos son el contrato principal para los flujos de trabajo de los empleados de ASM.
Descubrimiento y productos
search_products— descubrimiento de productos por palabras claveget_product— obtener el detalle de un productoget_session_status— inspeccionar el estado de la sesión actual
Cliente / ASM
search_customer— encontrar un cliente rápidamenteimpersonate_customer— empezar a actuar como clienteend_impersonation— volver al modo anónimo
Carrito y pago
add_to_cart— añadir un productoget_cart— leer el carrito actualupdate_cart_entry— cambiar la cantidad de una entradaremove_from_cart— eliminar una entradaclear_cart— vaciar el carritoset_delivery_address— adjuntar dirección de envíoset_delivery_mode— elegir método de envíoget_delivery_modes— listar opciones de envíoset_guest_email— establecer correo electrónico de pago de invitadoplace_order— enviar el pedido
Herramientas de bajo nivel
Estas exponen primitivas de OCC / ASM más estrechas para un control exacto.
basesites.list— listar sitios base disponiblescatalogs.list— listar catálogos para un sitiocatalogs.get— obtener un catálogocatalogVersions.get— obtener una versión de catálogocategories.products— explorar productos por categoríastores.list— listar tiendas para un sitiostores.get— obtener una tienda baseproducts.get— obtener un producto OCCproducts.stock— inspeccionar datos de stockproducts.stockCount— contar ubicaciones de stockasm.customer360— obtener fragmentos 360 del clienteasm.customers.create— crear un clienteasm.customers.search— ejecutar búsqueda de clientes ASMasm.customers.suggest— obtener sugerencias de clientescarts.list— listar carritoscarts.create— crear o restaurar carritocarts.get— obtener un carritocarts.delete— eliminar un carritocartEntries.list— listar entradas del carritocartEntries.add— añadir una entradacartEntries.get— obtener una entradacartEntries.update— reemplazar carga útil de entradacartEntries.patch— actualizar parcialmente la entradacartEntries.delete— eliminar una entrada
Configuración
Instalar dependencias:
uv syncCopiar la plantilla de entorno:
cp .env.example .envPara la instancia local de SAP Commerce, establecer:
SAP_BASE_URL=https://localhost:9002Mantenga o ajuste estos fragmentos de ruta si su despliegue de SAP difiere:
OCC_API_PATH=/occ/v2OAUTH_PATH=/authorizationserver/oauth/tokenASM_PATH=/assistedservicewebservices
Configure las credenciales de OAuth para el inquilino local o el inquilino remoto contra el que está validando. Para la configuración de datos de muestra locales estándar, estos son los valores predeterminados esperados:
OAUTH_CLIENT_ID=mobile_android OAUTH_CLIENT_SECRET=secret OAUTH_USERNAME=asmagent OAUTH_PASSWORD=nimda OAUTH_SCOPE=basic
Ejecución
Stdio:
python -m app.serverSSE:
fastmcp serve app/server.py --sse :8080
Pruebas
Suite de verificación completa:
uv run ruff check app tests uv run mypy app uv run pytest -qComprobaciones de humo:
uv run pytest tests/integration/test_smoke.py -qFlujo de descubrimiento en vivo:
uv run pytest tests/integration/test_integration_live.py -s
Nota Las pruebas en vivo están destinadas a validar el contrato actual contra un tiempo de ejecución real de SAP Commerce. Cuando
SAP_BASE_URL=https://localhost:9002, la instancia local de OCC/ASM debería ser el objetivo de prueba principal. Si los datos de OAuth o ASM están mal configurados, diagnostíquelos localmente antes de ampliar el alcance.
Advertencia sobre SAP local Algunas pilas locales de SAP 2211 incluyen
messagecentercsocc, cuyoOauth2UserFiltertardío puede sobrescribir el contexto en nombre de/users/{customerId}con el agente autenticado nuevamente. Si las llamadas al carrito deasmagentregresan a errores de conversiónEmployeeModel -> CustomerModel, parche ese filtro para que conserve el cliente ya coincidente cuando el usuario actual de OCC difiera del principal de OAuth.
Puertas de calidad
Ruff para linting e higiene de importaciones
Mypy para una puerta de tipo estático práctica en
app/Pytest + coverage.xml para que SonarQube pueda consumir la misma evidencia local utilizada en CI
El análisis local de SonarQube se puede publicar con:
uv run pytest -q
sonar-scannersonar-project.properties está registrado para que los escaneos locales y de CI utilicen la misma clave de proyecto/diseño de fuente.
Documentación
Flujos de trabajo — secuencias prácticas de llamadas a herramientas
Arquitectura Mermaid — fuente para el diagrama del sistema
Solicitud Mermaid — fuente para el diagrama de carril
Manifiesto MCP y registro de herramientas:
app/server.pyGuía de contribución:
AGENTS.md
Mejoras futuras
añadir un almacén de respaldo externo opcional solo si el proyecto necesita más adelante persistencia de sesión multiproceso o escalada horizontalmente
Cobertura de OCC / ASM soportada
El servidor actual cubre los puntos finales necesarios para los flujos anteriores, incluyendo sitios base, catálogos, tiendas, productos, carritos, entradas de carrito, operaciones de dirección/entrega de pago, realización de pedidos y operaciones de estilo búsqueda de clientes ASM / cliente 360 / vincular carrito.
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