Passer au contenu principal

Connecter ChatGPT au serveur MCP de Casdoor

Ce guide explique comment connecter ChatGPT au serveur MCP de Casdoor, afin que vous puissiez gérer les applications, les utilisateurs et d'autres objets depuis une conversation ChatGPT.


Objectifs d'apprentissage​

  • Laisser ChatGPT s'identifier comme un client OAuth 2.0 de Casdoor.
  • Ajouter le serveur MCP de Casdoor à ChatGPT en tant que serveur MCP personnalisé.
  • Se connecter et vérifier que ChatGPT peut appeler les outils.

Prérequis​

  • Une instance Casdoor accessible depuis Internet via HTTPS. ChatGPT appelle Casdoor depuis les serveurs d'OpenAI.
  • Un compte ou espace de travail ChatGPT qui autorise les serveurs MCP personnalisés
  • Accès administrateur à la console d'administration Casdoor

À propos de la connexion​

ChatGPT se connecte à un serveur MCP distant depuis la plateforme OpenAI. Il lit les documents de découverte de Casdoor et s'identifie en tant que client OAuth de deux manières : avec un document de métadonnées d'ID client (CIMD), où son client_id est une URL HTTPS d'un document publié par ChatGPT, ou via l'enregistrement dynamique des clients (DCR). Ensuite, il exécute le flux d'autorisation par code OAuth 2.0 avec PKCE. Voir Authentifier les utilisateurs dans la documentation d'OpenAI.

Autoriser l'enregistrement dynamique des clients​

  1. Dans la console d'administration Casdoor, allez dans User Management > Organizations et ouvrez l'organisation built-in. Les clients s'enregistrent dans cette organisation par défaut.
  2. Activez Enable dynamic client registration.
  3. Enregistrez l'organisation.

Le même paramètre permet à Casdoor d'accepter les documents de métadonnées d'ID client. Lorsque ChatGPT s'enregistre via DCR, Casdoor crée une application pour lui dont le nom commence par dcr_ ; lorsqu'il utilise CIMD, le nom de l'application commence par cimd_ et son ID client est l'URL du document de ChatGPT. Voir Enregistrement dynamique des clients et Accepter les clients identifiés par une URL de document de métadonnées.

Ajouter le serveur MCP dans ChatGPT​

Les noms des paramètres dans ChatGPT changent avec le temps. Pour les étapes actuelles, voir Connecter à ChatGPT dans la documentation d'OpenAI. Les politiques de compte et d'espace de travail déterminent qui peut ajouter des serveurs MCP personnalisés.

  1. Allez sur ChatGPT Plugins, sélectionnez le bouton plus, puis sélectionnez Add custom MCP server.
  2. Entrez un nom, tel que Casdoor, et une description.
  3. Sous Connection, entrez l'URL du serveur MCP : https://your-casdoor.com/api/mcp.
  4. Sous l'authentification, choisissez OAuth.
  5. Vérifiez l'avertissement de risque, sélectionnez I understand and want to continue, puis sélectionnez Create as a plugin.
  6. Installez le plugin. ChatGPT s'identifie auprès de Casdoor et ouvre la page de connexion Casdoor.

Connexion​

  1. Connectez-vous sur la page de connexion Casdoor avec un compte pouvant gérer les objets avec lesquels vous souhaitez que ChatGPT travaille.
  2. Si Casdoor affiche un écran de consentement, cliquez sur Allow.
  3. Casdoor vous renvoie vers ChatGPT. Le plugin est maintenant connecté.

Vérifier le résultat​

Dans une nouvelle conversation, tapez @ dans la zone de saisie, sélectionnez le plugin et demandez à ChatGPT de travailler avec Casdoor, par exemple :

  • « En utilisant Casdoor, liste toutes les applications. »
  • « Montre-moi l'application nommée my-app depuis Casdoor. »
  • "Créez une application dans Casdoor nommée test-app dans l'organisation my-org."

ChatGPT appelle les outils MCP et répond avec des données provenant de votre instance Casdoor, par exemple :

I've connected to your Casdoor instance and found the following applications:

1. chatgpt-mcp (ChatGPT MCP Client)
- Organization: my-org
- Created: 2024-01-15

2. app-built-in (Casdoor)
- Organization: built-in
- Default application

...

Dépannage​

ChatGPT ne peut pas se connecter au serveur MCP​

  • Vérifiez l'URL du serveur MCP dans ChatGPT. Elle se termine par /api/mcp.
  • Vérifiez que Casdoor est accessible depuis Internet via HTTPS avec un certificat valide. Pour le développement, un tunnel tel que ngrok fonctionne.
  • Appelez vous-même le point d'accès : curl https://your-casdoor.com/api/mcp.

L'enregistrement échoue​

Vérifiez que Enable dynamic client registration est activé pour l'organisation built-in.

Casdoor signale une incompatibilité d'URL de redirection​

Si vous utilisez une application créée manuellement au lieu de DCR ou CIMD, ajoutez l'URI de redirection affichée par ChatGPT sur la page de gestion du serveur MCP aux Redirect URLs de l'application. ChatGPT utilise l'une des deux formes suivantes :

  • https://chatgpt.com/connector_platform_oauth_redirect, une URI stable, pour les serveurs d'autorisation prenant en charge l'identification de l'émetteur (RFC 9207). Casdoor annonce cette prise en charge dans authorization_response_iss_parameter_supported et renvoie iss avec le code d'autorisation.
  • https://chatgpt.com/connector/oauth/<callback-id>, spécifique à une connexion, sinon.

Copiez la valeur exacte depuis ChatGPT plutôt que de la saisir manuellement.

ChatGPT demande une autorisation avant chaque appel d'outil​

ChatGPT décide comment confirmer un appel d'outil à partir des annotations MCP de l'outil, telles que readOnlyHint pour les outils qui ne peuvent rien modifier et destructiveHint pour les outils dont l'effet est difficile à annuler. Consultez Build your MCP server dans la documentation OpenAI. Les outils du serveur MCP de Casdoor ne définissent pas d'annotations, donc ChatGPT ne peut pas savoir que get_applications, get_application, get_users et get_user lisent uniquement des données, et il peut demander une autorisation pour eux ainsi que pour les outils add_, update_ et delete_.

Approuvez un appel seulement après avoir vérifié ses arguments, en particulier l'objet qu'un outil update_ ou delete_ va modifier. Pour limiter ce que ChatGPT peut faire indépendamment de vos approbations, connectez-vous avec un compte ayant uniquement les droits nécessaires pour ChatGPT, et accordez uniquement les scopes requis (voir MCP authorization and scopes).

Un appel d'outil échoue avec insufficient_scope​

Le jeton de ChatGPT ne possède pas le scope requis par l'outil. Consultez MCP authorization and scopes.

Le jeton expire lors d'une longue conversation​

ChatGPT actualise le jeton avec le refresh token. Si l'actualisation échoue, reconnectez le plugin.

Sécuriser la connexion​

  • HTTPS : ChatGPT exige HTTPS.
  • Privilège minimal : Connectez-vous avec un compte ayant uniquement les droits nécessaires pour ChatGPT.
  • Révocation : Pour couper le client, supprimez ses jetons sur la page Tokens de la console d'administration Casdoor.
prudence

OpenAI traite les données que ChatGPT lit depuis votre instance Casdoor. Ne demandez pas à ChatGPT de lire des mots de passe, des secrets ou des données personnelles que vous ne souhaitez pas partager avec OpenAI, et consultez la politique de confidentialité d'OpenAI.

Voir aussi​