When i add a product to cart, it responds with a checkout URL for the product I added, but:
It does not reflect the existing storefront cart.
Example: If I have a Cap in my cart and I add a Shirt, the checkout URL only contains the Shirt.
Calling the get_cart tool after that only shows the Shirt, ignoring the Cap.
The items added via update_cartdon’t appear in the actual online store cart.
The Shopify storefront still only shows the original cart (with the Cap).
I don’t see a clear use case for this from a customer’s perspective. If adding a product through update_cart doesn’t update the actual cart or the cart counter on the storefront, customers won’t see any change. This would make them uncomfortable or unsure if the item was really added to their cart.
I’ve tested the update_cart tool with raw JSON-RPC curl requests directly to the MCP endpoint (no
client library wrapper), and the lines parameter is completely ignored.
Result: Cart returned with existing items (added via storefront), but new item not added. No
errors. The updated_at timestamp changes, confirming the cart_id is valid and active.
What works:
get_cart - reads cart correctly (including items added via storefront)
update_cart - creates empty carts
update_cart with lines parameter - completely ignored
Shopify support confirmed: "The Storefront MCP isn’t actually processing the lines parameter at all
this seems like a bug in the Storefront MCP’s implementation."
The MCP should be using Shopify’s Storefront API cartLinesAdd mutation under the hood, but it
appears to not be executing it.