Wocart

Serveur MCP

CodFlow expose un serveur distant Model Context Protocol nommé CodFlow CRM. Les clients IA peuvent lister les commandes, clients, produits et expéditions d'une boutique, et exécuter des actions d'écriture avec les mêmes permissions que l'utilisateur connecté au tableau de bord.

Le serveur est joignable à :

EnvironnementURL
Productionhttps://api.codflow.store/mcp
Localhttp://localhost:8787/mcp

L'endpoint est protégé par OAuth. Un client ne peut pas appeler un outil sans jeton d'accès valide, et le jeton porte les scopes CodFlow de l'utilisateur.

Fonctionnement de l'autorisation

Le serveur MCP utilise le modèle de ressource protégée OAuth 2.1 :

  • Le serveur publie les métadonnées de ressource protégée et de serveur d'autorisation aux emplacements standard OAuth well-known.
  • Les clients découvrent automatiquement les deux documents depuis l'endpoint MCP.
  • Le serveur prend en charge l'enregistrement dynamique des clients sur /oauth/register et les Client ID Metadata Documents.
  • L'endpoint d'autorisation est /authorize ; les jetons sont émis sur /oauth/token.
  • Les jetons d'accès durent 1 heure ; les jetons de rafraîchissement durent 30 jours.

Lorsqu'un client se connecte, il ouvre l'écran de consentement CodFlow. Connectez-vous avec le compte du tableau de bord dont l'agent doit utiliser les données et les permissions. L'écran affiche les scopes demandés, et le serveur n'accorde que les scopes que l'utilisateur possède réellement. Un administrateur peut accorder n'importe quel scope demandé.

Le serveur déduit sa ressource OAuth de WORKER_SELF_URL. Pour les tests locaux, assurez-vous que cette valeur correspond à l'origine utilisée par votre client (http://localhost:8787).

Connecter un client

  1. Ouvrez les réglages MCP ou de connecteur de votre client

    Ajoutez un serveur MCP distant. Utilisez l'URL de production, ou l'URL locale pendant le développement.

  2. Démarrez la connexion

    Le client découvre les métadonnées OAuth et ouvre l'écran de connexion et de consentement CodFlow.

  3. Approuvez les scopes

    Connectez-vous avec le compte sous lequel l'agent doit agir. Vérifiez les scopes. Le serveur n'en accordera pas plus que ce que le compte possède déjà.

  4. Listez les outils

    Une fois le callback terminé, demandez au client de lister les outils CodFlow. Seuls les outils autorisés par les scopes du jeton sont enregistrés, donc le modèle ne voit jamais un outil qu'il ne peut pas appeler.

Configuration du client

{ "mcpServers": { "codflow": { "url": "https://api.codflow.store/mcp" } } }

Utilisez la même configuration avec http://localhost:8787/mcp pour un serveur local. Le chemin exact des réglages varie selon le client ; l'URL et le flux OAuth sont identiques.

Outils

Les outils sont regroupés par domaine et filtrés par les mêmes scopes que l'API REST. Quelques exemples :

DomaineExemples d'outils
ClientslistCustomers, getCustomerDetails, findCustomerByPhone, getCustomerOrderHistory
ProduitslistProducts, getProductDetails, createNewProduct, updateProductDetails
CommandeslistOrders, getOrderDetails, createOrder, updateOrderStatus
ExpéditionsgetShipment, handOffOrderToCarrier, reportShipmentEvent
LivraisonChauffeurs, paiements des chauffeurs, sociétés de livraison et profils d'expédition
CatalogueVariantes, groupes de produits, stock, offres et coupons
VitrinePages d'atterrissage, avis, groupes de clients et étiquettes de clients
RéférenceWilayas et communes

Chaque outil possède un schéma d'entrée typé et, lorsqu'il renvoie des données structurées, un schéma de sortie. Le client reçoit des titres lisibles et des annotations de sécurité avec la définition de l'outil.

Permissions et sécurité

  • Filtrage à l'enregistrement. Un outil n'est enregistré que si le jeton possède le scope requis. Un modèle ne peut ni découvrir ni appeler un outil hors des permissions de l'utilisateur.
  • Contournement administrateur. Le jeton d'un administrateur peut accorder tous les scopes ; le jeton d'un membre du staff ne peut accorder que les scopes qu'il possède.
  • Annotations destructives. Les suppressions, ajustements de stock, changements de statut de commande, règlements et remises aux transporteurs sont marqués destructiveHint: true. Les clients MCP qui prennent en charge la confirmation devraient demander confirmation avant de les exécuter ; vérifiez les réglages de confirmation de votre client.
  • Piste d'audit. Les appels d'outils effectués via MCP sont enregistrés dans le journal d'activité au nom de l'utilisateur connecté.
  • Limitation de débit. Les appels d'outils sont limités par utilisateur ou par sujet client.
  • Révocation. Révoquez une connexion depuis MCP dans le tableau de bord. L'API de gestion sous-jacente se trouve sous /api/mcp :
    • GET /api/mcp/me — vos connexions
    • DELETE /api/mcp/connections/{clientId} — révoquer votre connexion
    • GET /api/mcp/team — connexions de l'équipe (admin)
    • DELETE /api/mcp/connections/{clientId}/users/{userId} — révoquer la connexion d'un utilisateur (admin)

Dépannage

  • Aucun outil n'apparaît. Le jeton n'a peut-être aucun scope, ou le rôle de l'utilisateur ne couvre aucun domaine d'outils. Reconnectez-vous et approuvez au moins un scope.
  • 401 avec un challenge WWW-Authenticate. Le client n'a pas de jeton valide. Laissez-le relancer le flux OAuth ; ne collez pas une clé API du tableau de bord dans l'URL MCP.
  • 403 lors d'un appel d'outil. Les scopes du jeton ne couvrent pas cet outil, ou le compte est devenu inactif. Vérifiez l'utilisateur dans le tableau de bord.
  • Un client local ne termine pas OAuth. Vérifiez que WORKER_SELF_URL correspond à l'URL configurée et que le client peut joindre http://localhost:8787.

Le serveur MCP est distinct de l'API REST. Il n'apparaît pas comme opérations dans la référence API ; utilisez ce guide pour son endpoint et son comportement OAuth.