📚 Documentation - 🚀 Prise en main - 💻 Outils supportés - 💬 Retour d'expérience
MCP (Model Context Protocol) est un protocole ouvert introduit par Anthropic qui standardise la façon dont les grands modèles de langage communiquent avec des outils externes, des ressources ou des services distants.
[Avis de logiciel bêta : Ce logiciel est actuellement en version bêta et est fourni TEL QUEL sans aucune garantie.
- Les caractéristiques, les API et les fonctionnalités peuvent être modifiées à tout moment sans préavis
- Non recommandé pour une utilisation en production ou pour des charges de travail critiques
- L'assistance pendant la période bêta est limitée
- Les problèmes et les commentaires peuvent être signalés via le GitHub Issue Tracker
En utilisant ce logiciel bêta, vous reconnaissez et acceptez ces conditions.
Le serveur MCP Auth0 s'intègre aux LLM et aux agents d'intelligence artificielle, ce qui vous permet d'effectuer diverses opérations de gestion Auth0 en utilisant le langage naturel. Par exemple, vous pouvez simplement demander à Claude Desktop d'effectuer des opérations de gestion Auth0 :
Créer une nouvelle application Auth0 et obtenir le domaine et l'ID du client
Créer et déployer une nouvelle action Auth0 pour générer un jeton JWT
Pourriez-vous vérifier les journaux Auth0 pour les connexions à partir de l'adresse IP 192.108.92.3 ?
🚀 Démarrage
Prérequis :
- Node.js v18 ou supérieur
- Claude Desktop ou tout autre client MCP
- CompteAuth0 avec les autorisations appropriées
Installer le serveur MCP Auth0
Installez le serveur MCP Auth0 et configurez-le pour qu'il fonctionne avec votre client MCP préféré. Le paramètre --tools
spécifie quels outils doivent être disponibles (la valeur par défaut est *
si elle n'est pas fournie).
Claude Desktop avec tous les outils
npx @auth0/auth0-mcp-server init
Claude Desktop avec les outils en lecture seule
npx @auth0/auth0-mcp-server init --read-only
Vous pouvez également sélectionner explicitement des outils en lecture seule :
npx @auth0/auth0-mcp-server init --tools 'auth0_list_*,auth0_get_*'
Windsurf
npx @auth0/auth0-mcp-server init --client windsurf
Curseur
Étape 1 :
Étape 2 :
npx @auth0/auth0-mcp-server init --client cursor
Avec un accès limité aux outils
npx @auth0/auth0-mcp-server init --client cursor --tools 'auth0_list_applications,auth0_get_application'
Autres clients MCP
Pour utiliser le serveur MCP Auth0 avec tout autre client MCP, vous pouvez ajouter manuellement cette configuration au client et redémarrer pour que les changements prennent effet :
{ "mcpServers" : {"auth0" : {"command" : "npx", "args" : ["-y", "@auth0/auth0-mcp-server", "run"], "capabilities" : ["tools"], "env" : { "DEBUG" : "auth0-mcp" } } }
Vous pouvez ajouter --tools '<pattern>'
au tableau d'arguments pour contrôler les outils disponibles. Voir les meilleures pratiques en matière de sécurité pour connaître les modèles recommandés.
Autoriser avec Auth0
Votre navigateur s'ouvrira automatiquement pour lancer le flux d'autorisation de périphérique OAuth 2.0. Connectez-vous à votre compte Auth0 et accordez les permissions demandées.
[Les informations d'identification sont stockées en toute sécurité dans le trousseau de clés de votre système. Vous pouvez éventuellement vérifier le stockage à l'aide de votre outil de gestion du trousseau. Consultez la section Authentification pour plus d'informations.
Vérifiez votre intégration
Redémarrez votre client MCP (Claude Desktop, Windsurf, Cursor, etc.) et demandez-lui de vous aider à gérer votre locataire Auth0
🛠️ Outils supportés
Le serveur MCP Auth0 fournit les outils suivants pour que Claude puisse interagir avec votre locataire Auth0 :
Applications
Outil | Outil Description | Exemples d'utilisation |
---|---|---|
auth0_list_applications | Liste toutes les applications dans le locataire Auth0 ou recherche par nom | - Show me all my Auth0 applications - Find applications with 'api' in their name - What applications do I have in my Auth0 tenant ? |
auth0_get_application | Obtenir des détails sur une application Auth0 spécifique | - Afficher les détails de l'application appelée 'Customer Portal' - Obtenir des informations sur mon application avec l'ID client abc123 - Quelles sont les URL de rappel pour mon 'Mobile App' ? |
auth0_create_application | Créer une nouvelle application Auth0 | - Créer une nouvelle application à page unique appelée "Analytics Dashboard" - Créer une nouvelle application mobile native appelée "iOS Client" - Créer une application machine-to-machine pour notre service d'arrière-plan |
auth0_update_application | Mettre à jour une application Auth0 existante | - Mettre à jour les URLs de rappel pour mon 'Web App' pour inclure https://staging.example.com/callback - Changer l'URL de déconnexion pour le 'Customer Portal' - Ajouter des métadonnées d'environnement de développement à mon application 'Admin Dashboard' |
Serveurs de ressources
Outil | Description de l'outil | Exemples d'utilisation |
---|---|---|
auth0_list_resource_servers | Liste tous les serveurs de ressources (API) dans le locataire Auth0 | - Show me all the APIs in my Auth0 tenant - List my resource servers - What APIs have I configured in Auth0 ? |
auth0_get_resource_server | Obtenir des détails sur un serveur de ressources Auth0 spécifique | - Show me details for the 'User API' - What scopes are defined for my 'Payment API' ? - Obtenir des informations sur le serveur de ressources avec l'identifiant https://api.example.com" |
auth0_create_resource_server | Créer un nouveau serveur de ressources Auth0 (API) | - Créer une nouvelle API appelée 'Inventory API' avec des portées de lecture et d'écriture - Mettre en place un serveur de ressources pour notre API de données clients - Créer une API avec l'identifiant https://orders.example.com" |
auth0_update_resource_server | Mettre à jour un serveur de ressources Auth0 existant | - Ajouter un scope 'admin' à l'API 'User' - Mettre à jour la durée de vie du token pour mon API 'Payment API' à 1 heure - Changer l'algorithme de signature pour mon API à RS256 |
Actions
Outil | Description de l'outil | Exemples d'utilisation |
---|---|---|
auth0_list_actions | Liste toutes les actions du locataire Auth0 | - Show me all my Auth0 actions - Quelles sont les actions que j'ai configurées ? - Liste des actions dans mon locataire |
auth0_get_action | Obtenir des détails sur une action Auth0 spécifique | - Montrez-moi le code de mon action "Enrichir le profil de l'utilisateur" - Obtenez des détails sur mon action de flux de connexion - Que fait mon action "Ajouter des réclamations personnalisées" ? |
auth0_create_action | Créer une nouvelle action Auth0 | - Créer une action qui ajoute des rôles d'utilisateurs aux tokens - Configurer une action pour enregistrer les échecs de connexion - Créer une action post-connexion qui vérifie l'emplacement de l'utilisateur |
auth0_update_action | Mettre à jour une action Auth0 existante | - Mettre à jour mon action 'Add Custom Claims' pour inclure des informations sur le département - Modifier la logique de filtrage IP dans mon action de sécurité - Corriger le bug dans mon action d'enrichissement de l'utilisateur |
auth0_deploy_action | Déployer une action Auth0 | - Déployer mon action 'Add Custom Claims' en production - Mettre en production ma nouvelle action de sécurité - Déployer l'action d'enrichissement utilisateur mise à jour |
Journaux
Outil | Description de l'outil | Exemples d'utilisation |
---|---|---|
auth0_list_logs | Liste les journaux du locataire Auth0 | - Afficher les tentatives de connexion récentes - Trouver les échecs de connexion des dernières 24 heures - Obtenir les journaux d'authentification d'hier - Afficher les connexions réussies pour l'utilisateur john@example.com |
auth0_get_log | Obtenir une entrée de journal spécifique par ID | - Show me details for log entry abc123 - Get more information about this failed login attempt - What caused this authentication error ? |
Formulaires
Outil | Description de l'outil | Exemples d'utilisation |
---|---|---|
auth0_list_forms | Liste tous les formulaires du locataire Auth0 | - Montrez-moi tous mes formulaires Auth0 - Quels formulaires de connexion ai-je configurés ? - Liste les formulaires personnalisés de mon locataire |
auth0_get_form | Obtenir des détails sur un formulaire Auth0 spécifique | - Montrer les détails de mon formulaire 'Corporate Login' - A quoi ressemble mon formulaire de réinitialisation de mot de passe ? - Obtenir la configuration de mon formulaire d'inscription |
auth0_create_form | Créer un nouveau formulaire Auth0 | - Créer un nouveau formulaire de connexion avec la marque de notre entreprise - Créer un formulaire d'inscription personnalisé qui recueille des informations sur le département - Créer un formulaire de réinitialisation du mot de passe avec notre logo |
auth0_update_form | Mettre à jour un formulaire Auth0 existant | - Mettre à jour les couleurs de notre formulaire de connexion pour qu'il corresponde à notre nouvelle image de marque - Ajouter un lien vers la politique de confidentialité à notre formulaire d'inscription - Changer le logo de notre formulaire de réinitialisation de mot de passe |
auth0_publish_form | Publier un formulaire Auth0 | - Publier mon formulaire de connexion mis à jour - Mettre en ligne le nouveau formulaire d'inscription - Déployer le formulaire de réinitialisation de mot de passe en production |
meilleures pratiques de sécurité pour l'accès aux outils
Lors de la configuration du serveur Auth0 MCP, il est important de suivre les meilleures pratiques de sécurité en limitant l'accès aux outils en fonction de vos besoins spécifiques. Le serveur offre des options de configuration flexibles qui vous permettent de contrôler les outils auxquels les assistants AI peuvent accéder.
Vous pouvez facilement limiter l'accès aux outils en utilisant les options --tools
et --read-only
lors du démarrage du serveur :
# Activer uniquement les opérations en lecture seule npx @auth0/auth0-mcp-server run --read-only # Autre façon d'activer uniquement les opérations en lecture seule npx @auth0/auth0-mcp-server run --tools 'auth0_list_*,auth0_get_*' # Limiter aux outils liés à l'application npx @auth0/auth0-mcp-server run --tools 'auth0_*_application*' # Limiter aux outils liés à l'application en lecture seule # Note : --read-only est prioritaire lorsqu'il est utilisé avec --tools npx @auth0/auth0-mcp-server run --tools 'auth0_*_application*' --read-only # Restreindre aux seules capacités de visualisation des logs npx @auth0/auth0-mcp-server run --tools 'auth0_list_logs,auth0_get_log' # Exécuter le serveur avec tous les outils activés npx @auth0/auth0-mcp-server run --tools '*'
[IMPORTANT] Lorsque les options
--read-only
et--tools
sont utilisées ensemble, l'option--read-only
est prioritaire en termes de sécurité. Cela signifie que même si votre motif--tools
correspond à des outils non accessibles en lecture seule, seules les opérations en lecture seule seront disponibles. Cela garantit que vous pouvez compter sur l'option--read-only
comme garde-fou de sécurité.
Cette approche présente plusieurs avantages importants :
Une sécurité renforcée: En limitant les outils disponibles au strict nécessaire, vous réduisez la surface d'attaque potentielle et empêchez les modifications involontaires de votre locataire Auth0.
Meilleures performances: Fournir moins d'outils aux assistants d'IA améliore en fait les performances. Lorsque les modèles ont accès à de nombreux outils, ils utilisent une plus grande partie de leur fenêtre contextuelle pour raisonner sur les outils à utiliser. Avec un ensemble d'outils ciblés, vous obtiendrez des réponses plus rapides et plus pertinentes.
Contrôle d'accès basé sur les ressources: Vous pouvez configurer différentes instances du serveur MCP avec différents ensembles d'outils en fonction de besoins spécifiques - les environnements de développement peuvent avoir besoin d'un accès complet, tandis que les environnements de production peuvent être limités à des opérations de lecture uniquement.
Audit simplifié: Avec des outils limités, il est plus facile de suivre les opérations effectuées par l'assistant d'intelligence artificielle.
Pour la plupart des cas d'utilisation, il convient de commencer par l'ensemble minimal d'outils nécessaires et de n'en ajouter qu'en cas de besoin. Cela suit le principe du moindre privilège - une meilleure pratique de sécurité fondamentale.
🧪 Analyse de sécurité
Nous recommandons d'analyser régulièrement ce serveur, ainsi que tous les autres serveurs compatibles MCP que vous déployez, à l'aide d'outils communautaires conçus pour détecter les risques et les erreurs de configuration au niveau du protocole.
Ces scanners permettent d'identifier les problèmes dans les principales catégories de vulnérabilité, notamment : les bogues d'implémentation du serveur, les risques liés à la définition et au cycle de vie des outils, les faiblesses en matière d'interaction et de flux de données, et les lacunes en matière de configuration ou d'environnement.
Parmi les outils utiles, citons
mcpscan.ai
Scanner basé sur le web qui inspecte les points d'extrémité MCP en direct à la recherche d'outils exposés, de lacunes dans l'application des schémas et d'autres problèmes.mcp-scan
Outil CLI qui simule des chemins d'attaque et évalue le comportement du serveur du point de vue du client.
Ces outils ne remplacent pas un audit complet, mais ils offrent des garde-fous significatifs et des alertes précoces. Nous vous conseillons de les inclure dans votre processus régulier d'examen de la sécurité.
Si vous découvrez une vulnérabilité, veuillez suivre notre processus de divulgation responsable.
🕸️ Architecture
Le serveur Auth0 MCP met en œuvre le protocole de contexte de modèle, permettant à Claude de :
- Demander une liste des outils Auth0 disponibles
- D'appeler des outils spécifiques avec des paramètres
- Recevoir des réponses structurées de l'API de gestion Auth0
Le serveur gère l'authentification, la validation des demandes et la communication sécurisée avec l'API de gestion Auth0.
[Le serveur fonctionne comme un processus local qui se connecte à Claude Desktop, permettant une communication sécurisée sans exposer vos informations d'identification Auth0.
🔐 Authentification
Le serveur MCP Auth0 utilise l'API de gestion Auth0 et nécessite une authentification pour accéder à votre locataire Auth0.
Configuration initiale
Pour authentifier le serveur MCP :
npx @auth0/auth0-mcp-server init
Ceci lancera le flux d'autorisation de l'appareil, vous permettant de vous connecter à votre compte Auth0 et de sélectionner le locataire que vous souhaitez utiliser.
[IMPORTANT] La commande
init
doit être exécutée chaque fois que vous configurez le serveur MCP :
- Vous configurez le serveur MCP pour la première fois
- Vous vous déconnectez d'une session précédente
- Vous voulez changer de locataire
- Votre jeton a expiré
La commande
run
vérifiera automatiquement la validité du jeton avant de démarrer le serveur et fournira des messages d'erreur utiles si une authentification est nécessaire.
Gestion des sessions
Pour obtenir des informations sur votre session d'authentification en cours :
npx @auth0/auth0-mcp-server session
Déconnexion
Pour des raisons de sécurité, utilisez toujours la commande logout lorsque vous avez terminé une session :
npx @auth0/auth0-mcp-server logout
Cela permet de s'assurer que les jetons d'authentification sont correctement supprimés du trousseau de clés du système.
Flux d'authentification
Le serveur utilise le flux d'autorisation de périphérique OAuth 2.0 pour une authentification sécurisée avec Auth0. Vos informations d'identification sont stockées en toute sécurité dans le trousseau de votre système et ne sont jamais exposées en texte clair.
🩺 Dépannage
Lorsque vous rencontrez des problèmes avec le serveur MCP Auth0, plusieurs options de dépannage sont disponibles pour aider à diagnostiquer et à résoudre les problèmes.
Commencez le dépannage en explorant toutes les commandes et options disponibles :
npx @auth0/auth0-mcp-server help
🚥 Modes de fonctionnement
🐞 Debug Mode
- Journalisation plus détaillée
- Activé en définissant la variable d'environnement :
export DEBUG=auth0-mcp
[Le mode débogage est particulièrement utile pour résoudre les problèmes de connexion ou d'authentification.
🔑 Sélection de l'étendue
Le serveur fournit une interface de sélection interactive de l'étendue lors de l'initialisation :
Sélection interactive: Naviguer avec les touches fléchées et basculer les sélections avec la barre d'espacement
No Default Scopes (Aucune portée par défaut) : Par défaut, aucun champ d'application n'est sélectionné pour une sécurité maximale
Prise en charge des motifs globaux: Sélection rapide de plusieurs champs d'application connexes à l'aide de motifs :
# Sélectionner toutes les portées de lecture npx @auth0/auth0-mcp-server init --scopes 'read:*' # Sélectionner plusieurs modèles de portée (séparés par des virgules) npx @auth0/auth0-mcp-server init --scopes 'read:*,create:clients,update:actions'
[Les champs d'application sélectionnés déterminent les opérations que le serveur MCP peut effectuer sur votre locataire Auth0.
⚙️ Configuration
Autres clients MCP :
Pour utiliser le serveur MCP Auth0 avec n'importe quel autre client MCP, vous pouvez ajouter cette configuration au client et redémarrer pour que les changements prennent effet :
{ "mcpServers" : {"auth0" : {"command" : "npx", "args" : ["-y", "@auth0/auth0-mcp-server", "run"], "capabilities" : ["tools"], "env" : { "DEBUG" : "auth0-mcp" } } }
[!NOTE]
Vous pouvez mettre à jour manuellement si nécessaire ou si des erreurs inattendues se produisent pendant la commande npx init.
🚨 Problèmes courants
Échecs d'authentification
- Vérifiez que vous disposez des autorisations correctes dans votre locataire Auth0
- Essayez de réinitialiser avec
npx @auth0/auth0-mcp-server init
Claude Desktop ne peut pas se connecter au serveur
- Redémarrer Claude Desktop après l'installation
- Vérifier que le serveur fonctionne avec
ps aux | grep auth0-mcp
Erreurs d'API ou problèmes de permissions
- Activez le mode débogage avec
export DEBUG=auth0-mcp
- Vérifiez l'état de votre jeton Auth0 :
npx @auth0/auth0-mcp-server session
- Réinitialiser avec des scopes spécifiques :
npx @auth0/auth0-mcp-server init --scopes 'read:*,update:*,create:*'
- Si une opération spécifique échoue, il se peut que la portée requise soit manquante
- Activez le mode débogage avec
Erreur de configuration Auth0 non valide
- Cela se produit généralement lorsque votre jeton d'autorisation est manquant ou a expiré
- Exécutez la
session npx @auth0/auth0-mcp-server
pour vérifier l'état de votre jeton - Si le jeton est expiré ou manquant, exécutez
npx @auth0/auth0-mcp-server init
pour vous authentifier
[La plupart des problèmes de connexion peuvent être résolus en redémarrant le serveur et Claude Desktop.
📋 Journaux de débogage
Activez le mode débogage pour afficher les journaux détaillés :
export DEBUG=auth0-mcp
Obtenir les journaux détaillés du client MCP à partir de Claude Desktop :
# Suivre les logs en temps réel tail -n 20 -F ~/Library/Logs/Claude/mcp*.log
Pour un dépannage avancé, utilisez l'inspecteur MCP :
npx @modelcontextprotocol/inspector -e DEBUG='auth0-mcp' @auth0/auth0-mcp-server run
Pour obtenir des journaux détaillés sur le serveur MCP, exécutez le serveur en mode de débogage :
DEBUG=auth0-mcp npx @auth0/auth0-mcp-server run
👨💻 Développement
Construction à partir des sources
# Cloner le dépôt git clone https://github.com/auth0/auth0-mcp-server.git cd auth0-mcp-server # Installer les dépendances npm install # Construire le projet npm run build # Initier le flux d'authentification npx . init # Configurer votre client MCP (par exemple Claude Desktop) avec le chemin d'accès au serveur MCP npm run setup
Scripts de développement
# Exécuter directement avec TypeScript (pas de build nécessaire) npm run dev # Exécuter avec les logs de débogage activés npm run dev:debug # Exécuter avec l'inspecteur MCP pour le débogage npm run dev:inspect # Exécuter la version compilée de JavaScript npm run start
[Ce serveur nécessite Node.js v18 ou une version plus récente.
sécurité
Le serveur Auth0 MCP donne la priorité à la sécurité :
- Les informations d'identification sont stockées dans le trousseau sécurisé du système
- Aucune information sensible n'est stockée en texte clair
- L'authentification utilise le flux d'autorisation de périphérique OAuth 2.0
- Aucune autorisation (champ d'application) n'est demandée par défaut
- La sélection interactive de l'étendue vous permet de choisir exactement les autorisations à accorder
- Prise en charge de motifs globaux pour sélectionner rapidement des champs d'application connexes (par exemple,
read:*
) - Suppression facile du jeton via la commande de
déconnexion
lorsqu'il n'est plus nécessaire
[Pour des raisons de sécurité, utilisez toujours la commande
npx @auth0/auth0-mcp-server logout
lorsque vous avez terminé une session ou que vous passez d'un locataire à l'autre. Cela permet de s'assurer que vos jetons d'authentification sont correctement supprimés du trousseau de clés du système.
[Vérifiez toujours les autorisations demandées pendant le processus d'authentification pour vous assurer qu'elles correspondent à vos exigences de sécurité.
Divulgation de données analytiques anonymes
Des points de données anonymes sont collectés lors de l'utilisation de ce serveur MCP. Ces données comprennent la version du MCP, le système d'exploitation, l'horodatage et d'autres détails techniques qui ne vous identifient pas personnellement.
Auth0 utilise ces données pour mieux comprendre l'utilisation de cet outil afin de prioriser les fonctionnalités, les améliorations et les corrections les plus importantes pour nos utilisateurs.
Pour refuser cette collecte, définissez la variable d'environnement AUTH0_MCP_ANALYTICS
sur false
.
💬 Commentaires et contributions
Nous apprécions les commentaires et les contributions à ce projet ! Avant de commencer, veuillez consulter :
Signaler des problèmes
Pour fournir un retour d'information ou signaler un bogue, veuillez soulever un problème sur notre outil de suivi des problèmes (Issue Tracker).
Rapport de vulnérabilité
Veuillez ne pas signaler de vulnérabilités de sécurité sur le GitHub issue tracker public. Le programme de divulgation responsable détaille la procédure de divulgation des problèmes de sécurité.
📄 Licence
Ce projet est placé sous licence MIT. Voir le fichier LICENSE pour plus d'informations.