MCP
Chamilo 3.0 expose un serveur MCP afin que les assistants et agents d’IA (Claude, connecteurs ChatGPT, ou tout client compatible MCP) puissent agir dans la plateforme au nom d’un utilisateur authentifié, en utilisant les permissions de cet utilisateur — il n’existe ni compte de service distinct ni accès élevé.
Ce que MCP apporte à Chamilo
MCP (Model Context Protocol) est une norme ouverte qui permet aux clients d’IA d’appeler un ensemble défini d’« outils » exposés par un serveur. Le serveur MCP de Chamilo est accessible à un unique point de terminaison, /mcp, et expose un ensemble sélectionné d’outils de gestion de cours destinés aux enseignants, plutôt que l’intégralité de la surface de l’API.
Capacités disponibles
Chaque appel s’exécute en tant qu’utilisateur connecté, de sorte qu’un outil ne voit et ne modifie jamais que les cours que cet utilisateur gère. L’ensemble d’outils actuel :
Current user
Renvoie l’identité et les rôles de l’utilisateur authentifié
Teacher courses
Liste les cours que l’utilisateur gère en tant qu’enseignant
Course overview
Renvoie les informations de base du cours et les décomptes de ressources
Create course
Crée un nouveau cours selon les règles de création de cours de la plateforme
Create course assignment
Crée un devoir en brouillon ou publié, avec une description et une note maximale
Create course test
Crée un test à choix multiples assisté par l’IA à partir d’une description de sujet ou d’un document existant
Get course test response status
Indique quels étudiants ont répondu, sont en cours ou sont en attente sur un test
Get user course test score
Renvoie les scores les plus récents et les meilleurs scores obtenus par un étudiant sur un test
Create training satisfaction survey
Crée une enquête de satisfaction à sept questions
Create course learning path
Crée un parcours d’apprentissage à partir de pages fournies par le client MCP
List documents
Liste les documents de l’outil Documents d’un cours
Read course document
Renvoie le contenu HTML, le titre et les métadonnées d’un document modifiable
Edit course document
Remplace l’intégralité du contenu HTML d’un document modifiable existant
Create course document
Crée un document HTML assisté par l’IA dans le dossier Documents racine
Create course illustration
Génère une illustration IA pour un sujet et l’enregistre comme document
Illustrate document paragraph
Insère une image ou une vidéo existante avant ou après un paragraphe d’un document
Find recent course forum activity
Trouve les messages de forum récents et visibles liés à un sujet
Review course quality
Analyse les parcours d’apprentissage, documents, tests, devoirs et enquêtes d’un cours, et renvoie des recommandations d’amélioration
Cette liste est établie par l’équipe cœur de Chamilo ; elle n’est pas extensible par l’utilisateur depuis la plateforme — les enseignants ne peuvent pas ajouter leurs propres outils.
Activer MCP
MCP est désactivé par défaut. Tant qu'il n'est pas activé, le point de terminaison /mcp refuse tous les identifiants et le bouton Clé API MCP n'apparaît pas sur la page Réseau social des utilisateurs.
Allez dans Administration > Paramètres de configuration > Sécurité et réglez :
Activer le serveur MCP (
mcp_enabled) sur Oui.Autoriser MCP par rôles (
mcp_allowed_roles) avec les rôles autorisés à utiliser MCP. Il s'agit d'une carte JSON ; par défaut, seuls les administrateurs et les enseignants sont autorisés :Un utilisateur doit avoir au moins un rôle activé pour voir le bouton Clé API MCP et utiliser MCP. Un JSON invalide refuse MCP à tous les rôles. La restriction s'applique aussi aux clés et connexions OAuth créées auparavant : retirer un rôle coupe son accès existant.
Voir Paramètres de sécurité pour la description complète de ces deux paramètres.
Comment les utilisateurs se connectent
Clé API MCP personnelle
Chaque utilisateur génère sa propre clé sous Réseau social > Clé API MCP :

Un clic sur Générer une clé API crée une clé et l’affiche une seule fois — Chamilo ne conserve ensuite qu’une version masquée, de sorte que la clé complète doit être copiée et stockée de façon sécurisée immédiatement.
La génération d’une nouvelle clé révoque immédiatement la précédente.
La page affiche l’état de la clé (active/inactive), le point de terminaison MCP à configurer dans le client, ainsi que les dates de création et de dernière utilisation.
Le panneau Connexion MCP distante indique précisément ce qu’il faut renseigner dans le client MCP : l’URL du point de terminaison et un en-tête
Authorization: Bearer <your MCP API key>.
Comme le précise la page elle-même, la clé authentifie le client en tant que compte de cet utilisateur — elle n’accorde aucune permission que le compte n’a pas déjà.
OAuth 2.1 (clients distants et connecteurs)
Pour les clients MCP qui prennent en charge la découverte OAuth et l’enregistrement dynamique de clients (plutôt qu’une clé collée manuellement), Chamilo agit également comme serveur d’autorisation OAuth 2.1 : le client découvre les points de terminaison de Chamilo, s’enregistre, et redirige l’utilisateur vers /oauth/authorize pour approuver l’accès. Les applications approuvées apparaissent sous Réseau social > Applications autorisées, où l’utilisateur peut révoquer celles qu’il n’utilise plus ou ne reconnaît pas.
Considérations de sécurité
Aucune élévation de privilèges. Chaque appel d’outil MCP et chaque application autorisée par OAuth s’exécute avec les propres permissions Chamilo de l’utilisateur connecté — une clé API personnelle ou une application autorisée ne peut jamais faire plus que ce que cet utilisateur pourrait déjà faire manuellement.
Bearer uniquement, avec limitation de débit.
/mcpn’accepte qu’un identifiant Bearer — une clé API MCP personnelle, un jeton d’accès OAuth, ou (en développement) un JWT. Les tentatives d’authentification sont limitées en débit par adresse IP afin de ralentir les essais de devinette d’identifiants.Surface publique restreinte. Le seul trafic non authentifié que
/mcpaccepte est le prévolOPTIONS; chaque appel réel exigeROLE_USER. Les points de terminaison de découverte OAuth, d’enregistrement dynamique de client et de jeton sont volontairement publics, comme l’exigent les spécifications OAuth 2.1 / MCP — cela n’accorde pas d’accès en soi, cela permet seulement à un client d’apprendre comment démarrer le flux d’autorisation.La protection contre le DNS-rebinding est volontairement désactivée pour
/mcp. Le bundle qui implémente MCP restreint normalement le point de terminaison àlocalhostsauf si une liste statique de noms d’hôte autorisés est configurée — ce qui convient mal à un portail Chamilo multi-URL accessible sous de nombreux noms d’hôte. Chamilo désactive ce contrôle car il est redondant ici : chaque requête/mcpexige déjà un identifiant Bearer indépendamment de son en-têteHost/Origin, et une attaque par DNS-rebinding (qui s’appuie sur une authentification ambiante de type cookie voyageant avec un Host usurpée) ne peut pas forger un jeton bearer qu’elle ne possède pas déjà.
Configuration du serveur MCP
Au-delà des deux paramètres de plateforme décrits dans Activer MCP, le serveur MCP lui-même se configure au niveau des fichiers, dans config/packages/mcp.yaml, ce qui nécessite un accès shell au serveur :
app, version, description
Identité que Chamilo communique aux clients MCP qui se connectent
client_transports.stdio / client_transports.http
Quels transports sont actifs ; Chamilo active les deux par défaut
http.path
Le point de terminaison HTTP MCP (/mcp par défaut)
http.allowed_hosts
Liste d’hôtes autorisés pour le DNS-rebinding — définie à false sur Chamilo (voir Considérations de sécurité ci-dessus)
http.session.store, .directory, .ttl
Où l’état de session MCP est persisté et pendant combien de temps
Pour désactiver MCP pour tout le monde, remettez Activer le serveur MCP sur Non. Pour supprimer le transport HTTP lui-même, définissez client_transports.http: false (et stdio: false si le transport CLI doit également être désactivé) et videz le cache :
Conseils
Traitez une clé API MCP comme un mot de passe — quiconque la détient peut agir en tant que cet utilisateur via n’importe quel client MCP.
Encouragez les utilisateurs à examiner périodiquement les Applications autorisées et à révoquer tout ce qu’ils ne reconnaissent pas.
Consultez Configuration de l’IA pour les fournisseurs d’IA qui alimentent les outils de génération de contenu (création de tests, création de documents, illustrations) listés ci-dessus.
Mis à jour
Ce contenu vous a-t-il été utile ?