Shopify a lancé Shop MCP le 13 octobre, offrant aux développeurs une connexion hébergée unique pour rechercher des produits, utiliser des paniers et payer. Le service est disponible sur https://mcp.shop.com/. Ses 17 outils peuvent trouver des produits dans Shopify Catalog et ouvrir le paiement auprès du marchand qui vend un article. La recherche dans le catalogue ne nécessite pas de clé API. Un achat réel doit toujours être approuvé par l’acheteur.

Ce guide s’adresse aux développeurs qui configurent un assistant compatible avec MCP. Les étapes suivent la documentation de Shopify, vérifiée le 14 octobre. BIG CHANGE n’a connecté aucun agent, créé aucun panier ni effectué d’achat. Le guide décrit donc des résultats attendus, et non des performances observées.

Le principal changement

  • Ce qui a changé : Shopify propose désormais une connexion MCP hébergée allant de la recherche dans le catalogue au panier marchand et au paiement. La société décrit aussi comment un acheteur connecté peut payer avec Shop Pay après confirmation explicite.
  • Qui peut l’utiliser : les développeurs disposant d’un client MCP compatible avec la version du protocole 2026-07-28, ou d’un code qui effectue les appels HTTP documentés. Un ancien client qui n’utilise que la poignée de main initialize ne peut pas se connecter directement.
  • Ce qu’il faut vérifier : Le paiement est une transaction avec un seul marchand. completed associé à un order confirme l’achat ; un panier, un lien de paiement ou un paiement en cours ne le confirme pas.

Avant la connexion

Il vous faut un client MCP compatible avec les serveurs HTTP distants et prenant en charge la méthode de connexion documentée par Shopify ou une application qui appelle le serveur par HTTP. Utilisez l’URL racine https://mcp.shop.com/ ; l’ajout de /mcp renvoie une erreur 404. Les outils de recherche et de panier fonctionnent sans compte Shop. Une fois connecté, l’assistant peut utiliser les préférences et adresses enregistrées, trouver des commandes et proposer Shop Pay si le marchand le permet. Pour un assistant utilisant son propre code HTTP, Shopify décrit un flux OAuth pour appareil, approuvé par l’acheteur sur le site Shop.

Choisissez une requête produit, un pays de destination et une devise avant de lancer la recherche. Distinguez les exigences exprimées par l’acheteur du contexte de recherche : le pays ou la devise servent à localiser les résultats ; un plafond de prix, une taille ou une destination d’expédition sont des filtres. L’API exprime les prix en unités mineures de la devise. Votre application doit lire le champ messages de la réponse avant d’affirmer qu’un résultat respecte un filtre, car le service peut indiquer que le filtre demandé n’a pas été appliqué. Le guide de recherche de Shopify explique la différence et la limite de 1 à 50 résultats par page.

Un parcours documenté de la recherche à la commande

  1. Connecter et vérifier la recherche. Configurez le client avec https://mcp.shop.com/ et chargez le Shop skill de Shopify si le client le prend en charge. Shopify conseille de tester la connexion en recherchant trois lampes de bureau sans créer de panier. Une recherche opérationnelle renvoie des produits avec leur vendeur, un prix dans une devise indiquée et un lien marchand. Les développeurs utilisant HTTP peuvent suivre le guide de démarrage JSON-RPC de Shopify, qui comprend les en-têtes de protocole requis et la requête search_catalog. Cette vérification est en lecture seule et ne nécessite aucune connexion.
  2. Choisir l’article exact. Lancez search_catalog avec la requête et les exigences de l’acheteur. La recherche renvoie une variante mise en avant ; utilisez get_product si l’acheteur souhaite une autre taille ou couleur. Comparez product.selected et la variant.options renvoyée avec chaque taille, couleur et autre choix précisé par l’acheteur avant de l’afficher ou de l’acheter. Shopify indique que la sélection peut être assouplie sans avertissement. Lorsque l’acheteur choisit un produit ou modifie une option, rappelez get_product pour vérifier le stock et le prix actuels. Conservez à l’identique l’ID de la variante et le domaine du vendeur renvoyés. Ne supposez pas que le marchand maintiendra un prix affiché précédemment. Affichez chaque avertissement à côté du produit concerné. Ces vérifications figurent dans Trouver des produits.
  3. Créer un panier sur demande. Si l’acheteur demande de réunir des articles, appelez create_cart pour le marchand et la variante choisis. Un panier enregistre les articles, mais ne passe pas de commande. Séparez les articles de vendeurs différents dans des paniers distincts : Shopify précise que chaque panier et chaque paiement relèvent d’un seul marchand. Le résultat doit inclure l’ID du panier et ses lignes. Si l’acheteur veut seulement parcourir les produits, arrêtez-vous après la recherche ; le guide des paniers de Shopify précise que l’intérêt pour un produit ne suffit pas à autoriser la création d’un panier.
  4. Ouvrir et examiner le paiement. Lorsque l’acheteur demande le prix total ou est prêt à acheter, appelez create_checkout avec l’ID du panier, ou l’ID exact de la variante et le domaine du vendeur renvoyés par la recherche. Le document de paiement doit renvoyer un ID, un statut, les lignes d’articles, la devise, les totaux, les moyens de paiement, messages, la politique du marchand links et un continue_url pour sa page. Avant de poursuivre, montrez à l’acheteur les totaux actuels et leurs libellés, frais de livraison et taxes compris, tous les avertissements et les liens vers les politiques. Placez les explications près de l’article ou du champ concerné. Fournissez à l’acheteur le continue_url inchangé, avec ses paramètres de requête et les articles concernés, même si l’agent peut finaliser le paiement. Le paiement peut être incomplete si une adresse est nécessaire, ou requires_escalation si l’acheteur doit le terminer sur la page du marchand. Shopify indique qu’il expire par défaut au bout de six heures.
  5. Laisser l’acheteur gérer le paiement. Si l’acheteur se connecte, le paiement peut proposer des adresses enregistrées et Shop Pay. Avant d’appeler complete_checkout, lisez le paiement le plus récent, vérifiez qu’il est ready_for_complete, affichez le marchand, les articles, les quantités, le total et les moyens disponibles, puis laissez l’acheteur choisir son moyen de paiement. Ne choisissez pas à sa place. Laissez le continue_url du marchand, inchangé, à la disposition de l’acheteur même si l’agent peut finaliser le paiement ; si aucun instrument de paiement n’est disponible, l’acheteur doit utiliser ce lien. Les instructions de paiement de Shopify indiquent d’envoyer complete_checkout une seule fois après approbation, puis d’examiner le statut renvoyé. Un flux d’approbation distinct pour les boutiques hors Shopify demande à l’acheteur d’approuver le paiement dans Shop et de fournir une carte pour le paiement propre à cette boutique ; il ne s’agit pas du parcours de paiement Shopify décrit aux étapes 3 et 4.
  6. Vérifier le résultat. Seul status: completed accompagné d’un order confirme que le marchand a passé une commande. Si le paiement est encore en cours, utilisez get_checkout pour relire son statut. Shopify indique qu’aucun webhook n’est disponible au lancement ; une intégration doit donc interroger get_checkout pour obtenir les mises à jour. Si l’appel de finalisation expire ou si la réponse est ambiguë, ne le renvoyez pas et n’ouvrez pas un autre paiement. Consultez le paiement existant ; s’il n’affiche pas les deux statuts completed et order, indiquez à l’acheteur que l’achat n’est pas confirmé et donnez-lui continue_url.

Limites et récupération

Selon Shopify, la recherche fonctionne sans identifiants. Sa note de lancement oriente les développeurs qui ont besoin de limites de requêtes plus élevées vers une clé API dans le Shopify Dev Dashboard, mais ne publie ni prix ni tableau de limites pour cette clé. Les prix des articles du marchand, la livraison et les taxes viennent du paiement actuel ; l’acheteur doit les vérifier avant de payer. L’agent peut aussi avoir ses propres frais d’hébergement ou de modèle si le développeur en utilise un. L’annonce ne chiffre pas ces coûts.

Une lecture échouée peut être répétée après le délai de retry_after indiqué. Pour créer ou mettre à jour des paniers et des paiements, le guide des erreurs de Shopify recommande d’utiliser une clé d’idempotence et de lire la ressource existante avant de répéter une écriture dont le résultat est incertain. Si une création sans clé échoue avant de renvoyer un ID, son résultat est inconnu ; ne devinez pas en en créant une autre. complete_checkout est plus strict : ne le répétez jamais après une réponse incertaine. La page du marchand reste le parcours de l’acheteur lorsque requires_escalation ou l’absence de données de paiement empêche l’agent de terminer.

Traitez les ID de paiement, les liens de paiement, les jetons d’accès et les moyens de paiement comme des données sensibles. Shopify indique que l’ID de paiement et continue_url contiennent des clés d’accès ; ne les placez pas dans les journaux ni les outils d’analyse, et ne partagez le lien qu’avec l’acheteur. La référence d’authentification indique qu’un jeton Shop doit être transmis uniquement dans l’en-tête d’autorisation à https://mcp.shop.com/. Un moyen de paiement peut contenir un identifiant secret ; ne l’affichez pas et ne le consignez pas.

BIG CHANGE avait déjà couvert les outils de paiement des agents de navigateur de Shopify. Cette version MCP hébergée décrit un parcours distinct, qui commence par la découverte dans le catalogue. La note de lancement et les manuels de Shopify précisent les appels possibles et les réponses à examiner ; ils ne démontrent ni gains de conversion, ni fiabilité sous charge, ni achat réussi par BIG CHANGE.

Sources et lectures complémentaires