Connecter un agent d'IA (Claude) via MCP
Connectez un agent d'IA, comme Claude, à votre CRM via le serveur MCP natif. L'agent lit et crée des enregistrements (leads, contacts, opportunités) en toute sécurité, en utilisant votre clé API.
MCP (Model Context Protocol) est le standard qui permet à un agent d'IA de dialoguer avec des systèmes externes. Sellio fournit un serveur MCP natif : pointez l'agent (par exemple Claude, exécuté dans Claude Desktop ou tout client MCP) vers l'URL du serveur, et il pourra interroger et créer des enregistrements dans votre CRM. C'est idéal pour un agent de prospection qui crée automatiquement des leads et des contacts. Tout s'exécute dans le contexte du tenant de la clé API et respecte les validations et les permissions (RBAC) du CRM.
Prérequis
- Un client MCP (Claude Desktop, ou toute application/agent parlant MCP sur HTTP).
- Dans Sellio, un accès administrateur pour générer la clé API sous Paramètres → API et développeurs.
1) Générer une clé API
- Ouvrez Paramètres → API et développeurs (également accessible via le raccourci de la barre latérale).
- Créez une nouvelle clé API et copiez la valeur (elle commence par sk_ et n'est affichée qu'une seule fois, traitez-la donc comme un mot de passe).
- La même clé fonctionne à la fois pour l'API REST et pour MCP.
2) Pointer l'agent vers le serveur MCP
L'URL du serveur MCP est https://YOUR-CRM/api/mcp et l'authentification est la même que pour REST : l'en-tête Authorization: Bearer sk_...
Dans Claude Desktop (et les clients utilisant le pont mcp-remote), ajoutez ceci à votre fichier de configuration des serveurs MCP :
3) Outils dont dispose l'agent
- list_objects: découvre les objets disponibles (leads, contacts, entreprises, opportunités et objets personnalisés).
- describe_object: découvre les champs d'un objet : apiName, libellé, type, s'il est obligatoire, les options acceptées par un select, et l'objet cible d'un lookup. À appeler avant de créer ou de mettre à jour.
- list_records: liste et recherche les enregistrements d'un objet (recherche, filtres de champs, tri, pagination).
- get_record: récupère un enregistrement par son id.
- create_record: crée un enregistrement (par exemple un nouveau lead de prospection).
- update_record: met à jour les champs d'un enregistrement existant.
- delete_record: déplace un enregistrement vers la corbeille (réversible). Ne fonctionne que si la clé API a le delete scope activé, qui est désactivé par défaut.
- bulk_create_records: crée jusqu'à 500 enregistrements en un seul appel, avec le succès ou l'échec signalé par élément.
- bulk_update_records: met à jour jusqu'à 500 enregistrements par id en un seul appel, avec le succès ou l'échec signalé par élément.
- export_records: renvoie les enregistrements d'un objet sous forme de lignes tabulaires plates aux colonnes stables, avec updated_since et created_since pour la synchronisation incrémentale. Conçu pour les outils de BI et d'automatisation.
- list_activities: liste les activités d'un enregistrement (sa chronologie) ou les plus récentes de l'espace de travail.
- create_activity: enregistre une tâche à faire, ou un appel, un e-mail, une réunion ou une note déjà survenue.
- update_activity: termine, rouvre, replanifie, réattribue ou enregistre le résultat d'une activité.
- delete_activity: supprime une activité. Nécessite le delete scope.
- list_attachments: liste les fichiers joints à un enregistrement.
- get_attachment: renvoie les métadonnées d'une pièce jointe et un lien de téléchargement signé qui expire au bout de 5 minutes.
- create_attachment_upload_url: étape 1 d'un envoi : renvoie une URL signée vers laquelle les octets du fichier sont envoyés en PUT (25 Mo maximum).
- register_attachment: étape 2 d'un envoi : enregistre le fichier téléversé sur l'enregistrement pour qu'il apparaisse dans la chronologie.
- delete_attachment: supprime une pièce jointe et son fichier. Irréversible, ce qui nécessite le delete scope.
- list_inventory: solde de stock, quantité réservée et disponible par produit, pour un produit, ou seulement les produits sous le minimum.
- list_line_items: lignes de produit d'une opportunité (quantité, prix, remise, taxe) et le total recalculé.
- add_line_item: ajoute une ligne de produit à une opportunité. Les totaux et le montant de l'opportunité sont recalculés avec le même moteur que celui utilisé par l'écran.
- update_line_item: modifie la quantité, le prix, la remise, la taxe, la durée ou la description d'une ligne de produit.
- delete_line_item: supprime une ligne de produit d'une opportunité.
- send_marketing_email: envoie un e-mail marketing (à, objet, html) via le fournisseur configuré, avec le pied de page de désabonnement ajouté automatiquement.
Référence complète de l'API REST et de MCP (points de terminaison, paramètres, format des erreurs, limite de débit et découverte des champs) : voir l'article « Référence développeur : API REST et MCP », ici dans le Centre d'aide.
Comment tester
- Connectez l'agent et demandez-lui quelque chose comme « liste mes objets CRM », il devrait appeler list_objects et retourner la liste.
- Demandez « crée un lead nommé Ana Souza avec l'e-mail ana@acme.com », et l'agent appelle create_record et retourne l'id du nouvel enregistrement.
- Vérifiez dans le CRM que l'enregistrement apparaît dans la liste de l'objet.
Dépannage
- 401 Unauthorized : la clé API est manquante/incorrecte. Générez-en une nouvelle sous Paramètres → API et développeurs et reconfigurez l'agent avec Authorization: Bearer sk_...
- L'agent ne voit pas le serveur : vérifiez l'URL https://YOUR-CRM/api/mcp et, dans Claude Desktop, que le bloc mcpServers figure bien dans le fichier de configuration et que l'application a été redémarrée.
- Une action a été refusée : MCP respecte les permissions (RBAC) et les validations du CRM, et le message d'erreur explique pourquoi (champ obligatoire, absence de permission, limite de plan, etc.).
- Je ne vois que mes données : c'est correct. Chaque clé API est isolée à son tenant propriétaire, l'agent ne voit donc jamais les données d'une autre entreprise.