Microsoft 365 MCP Server, publié par Softeria, connecte les assistants IA aux services Microsoft 365 et Office via Microsoft Graph. Le dépôt Softeria/ms-365-mcp-server annonce plus de 300 outils mappés un-pour-un sur des endpoints Graph, avec Outlook, Calendar, OneDrive, Excel, OneNote, To Do, Planner, Contacts, Search et, en mode organisation, Teams, réunions, SharePoint, boîtes partagées, présence et gestion utilisateurs. Lors de la vérification GitHub du 26 août 2026, le dépôt était sous licence MIT, comptait 937 étoiles et 359 forks, et package.json indiquait @softeria/ms-365-mcp-server avec moteur Node >=18.
Pour Educasium, Microsoft 365 MCP est le pendant Microsoft de Google Workspace MCP, mais avec un point technique central : Microsoft Graph et ses permissions. L'enjeu est d'expliquer les usages productifs avec leurs garde-fous : lecture seule, presets, scopes autorisés, comptes multiples, cache de tokens et distinction entre compte personnel et compte organisation.
Sommaire
- Ce que fait Microsoft 365 MCP
- Services personnels et organisationnels
- Authentification et permissions Graph
- Presets, filtrage et découverte dynamique
- Transport HTTP, comptes multiples et stockage tokens
- JSON, TOON et limites de sortie
- Comparaison avec Google Workspace et Excel MCP
- Position Educasium
Ce que fait Microsoft 365 MCP
À retenir : Microsoft 365 MCP expose Microsoft Graph à un client IA, avec plus de 300 outils annoncés et une surface contrôlable par flags. Ce n'est pas un plugin Outlook isolé.
Une passerelle Graph
Le README dit que chaque outil correspond déclarativement à un endpoint dans src/endpoints.json. Cela donne une couverture très large : email, calendrier, fichiers OneDrive, Excel, OneNote, tâches, Planner, contacts, profil utilisateur et recherche en mode personnel ; Teams, chats, réunions, transcriptions, SharePoint, boîtes partagées et gestion utilisateurs en mode organisation.
Cette ampleur est utile dans une entreprise Microsoft. Un assistant peut retrouver un email, lire un fichier OneDrive, préparer un brouillon, lister des événements, consulter des tâches ou travailler sur une donnée Excel via Graph. Mais chaque capacité doit être reliée à une permission Graph précise.
Node et package
Le README indique Node.js >=20 recommandé et Node.js 14+ potentiellement fonctionnel avec avertissements de dépendances. Le package.json vérifié déclare un moteur Node >=18, un binaire ms-365-mcp-server, des dépendances comme @azure/msal-node, @modelcontextprotocol/sdk, express, helmet, express-rate-limit, winston et zod.
Cette différence doit être écrite clairement : pour un usage sérieux, suivre la recommandation README Node >=20 ; le champ engines du package accepte >=18. Ne pas présenter Node 14 comme cible normale.
Services personnels et organisationnels
À retenir : le mode personnel est disponible par défaut ; Teams, SharePoint et les fonctions work/school demandent --org-mode. Cette séparation change les outils disponibles et les permissions demandées.
Mode personnel
Le README liste comme outils personnels email Outlook, calendrier, fichiers OneDrive, Excel, OneNote, To Do, Planner, contacts, profil utilisateur et recherche. C'est le périmètre le plus simple pour tester le serveur avec un compte Microsoft personnel ou un usage individuel.
Même en mode personnel, il faut contrôler les écritures. Envoyer un email, modifier un fichier ou créer une tâche n'est pas neutre. Le mode read-only est donc une première étape prudente.
Mode organisation
Le mode organisation s'active avec --org-mode ou son alias --work-mode. Il ouvre les fonctionnalités work/school : Teams et chats, réunions en ligne, transcripts, attendance reports, SharePoint Sites and Lists, calendriers et boîtes partagées, user management, presence et virtual events.
Le README est explicite : le mode organisation doit être activé dès le démarrage pour accéder à ces fonctionnalités. Pour les boîtes partagées, il faut aussi des permissions déléguées et des droits Exchange réels pour l'utilisateur connecté.
Authentification et permissions Graph
À retenir : MSAL gère l'authentification et les permissions sont calculées selon les outils activés. C'est le cœur de la gouvernance Microsoft 365 MCP.
Flux disponibles
Le README documente le device code flow par défaut, l'OAuth Authorization Code Flow en mode HTTP, et BYOT pour fournir un token OAuth existant. En HTTP, le serveur exige une authentification Bearer pour les requêtes MCP et désactive les outils login/logout par défaut, sauf option explicite.
Les environnements d'entreprise peuvent utiliser leur propre app Azure Entra via MS365_MCP_CLIENT_ID, MS365_MCP_CLIENT_SECRET et MS365_MCP_TENANT_ID. Le README note aussi un détail important pour les comptes Microsoft personnels : définir consumers peut être nécessaire pour éviter des problèmes de refresh token avec common.
Permissions et scopes
--list-permissions permet d'afficher les permissions requises pour la configuration active. Le README distingue toolPermissions, effectivePermissions, allowedScopes, disabledTools, missingAllowedScopesForTools et extraAllowedScopesNotUsedByTools.
--allowed-scopes et MS365_MCP_ALLOWED_SCOPES réduisent la surface : le serveur cache les outils dont les scopes requis ne sont pas couverts. Une valeur vide échoue au démarrage au lieu de revenir à un périmètre plus large. Ce comportement fail-fast est essentiel dans un déploiement gouverné.
Presets, filtrage et découverte dynamique
À retenir : presets, --enabled-tools, --read-only et --discovery servent à réduire les outils visibles par le modèle et la taille du contexte. Plus de 300 outils sans filtre est rarement le bon point de départ.
Presets
Le README liste des presets comme mail, calendar, files, personal, work, excel, contacts, tasks, onenote, search, users, outlook, onedrive, teams, teams-write et all. Les presets outlook, onedrive et teams sont centrés sur une application. teams-write est un cas intéressant : il permet l'envoi dans Teams avec un périmètre de lecture réduit.
Ces presets sont utiles en pédagogie. Ils montrent qu'un MCP n'est pas seulement installé ou non ; il est configuré. Un atelier peut commencer par --preset mail --read-only, puis élargir à calendar ou files.
Découverte dynamique
--discovery charge les outils à la demande au lieu de tout exposer immédiatement. Le README le présente comme une manière de réduire contexte et coût, particulièrement pour les longues sessions ou les interfaces où la surface d'outils devient lourde.
Cette option est cohérente avec la discipline Educasium : donner au modèle une surface lisible, puis l'élargir quand le besoin est réel.
Transport HTTP, comptes multiples et stockage tokens
À retenir : le serveur supporte stdio, HTTP OAuth, comptes multiples et cache de tokens chiffré ; chacun ajoute des choix de sécurité.
Comptes multiples
Le README explique qu'une instance peut servir plusieurs comptes Microsoft. Quand plusieurs comptes sont connectés, un paramètre account est injecté dans les outils. Le serveur peut aussi épingler un compte attendu avec MS365_MCP_EXPECTED_USERNAME ou un homeAccountId.
Ce mécanisme évite de lancer N serveurs pour N comptes, mais il demande de la discipline. Dans un contexte client, il faut savoir quel compte est utilisé avant toute action d'écriture ou lecture sensible.
Stockage tokens
Les tokens sont stockés dans un cache chiffré AES-256-GCM, avec clé dans le credential store de l'OS et fallback fichier. Le README détaille les chemins par défaut selon Windows, macOS et Linux, ainsi que le comportement quand le cache ne peut pas être déchiffré.
Ce niveau de détail mérite d'être expliqué. Un MCP productivité n'est pas seulement une liste d'outils ; c'est un système d'authentification qui vit dans le temps, avec login, cache, sélection de compte, logout et récupération d'erreur.
JSON, TOON et limites de sortie
À retenir : le format JSON est le défaut ; TOON est expérimental et vise une réduction de tokens de 30 à 60 % selon le README. Cette promesse concerne surtout les listes homogènes.
Format de sortie
Le serveur peut sortir du JSON standard ou du TOON, Token-Oriented Object Notation. Le README positionne TOON comme utile pour réduire le volume de tokens dans des tableaux uniformes : listes d'emails, événements, fichiers et autres résultats similaires.
Pour Educasium, il faut le présenter comme optimisation, pas comme exigence. JSON reste plus familier, plus standard et plus facile à déboguer. TOON peut être testé quand le volume devient un vrai problème.
Limites de pagination
Les variables MS365_MCP_MAX_TOP, MS365_MCP_MAX_PAGES, MS365_MCP_MAX_ITEMS et MS365_MCP_ALLOW_PAGINATION permettent de limiter la taille des réponses. Ce sont des garde-fous pratiques contre les requêtes trop larges.
Dans une organisation, ces limites empêchent un assistant de récupérer trop de données par erreur. Elles améliorent aussi le coût, la latence et la lisibilité de la conversation.
Comparaison avec Google Workspace et Excel MCP
À retenir : Microsoft 365 MCP est le bon choix pour une organisation Microsoft ; Google Workspace MCP pour Google ; Excel MCP pour les fichiers .xlsx hors cloud.
| Besoin | Microsoft 365 MCP | Google Workspace MCP | Excel MCP |
|---|---|---|---|
| Outlook, Teams, SharePoint | Très adapté | Hors périmètre | Hors périmètre |
| Gmail, Drive, Docs, Sheets | Hors périmètre | Très adapté | Hors périmètre |
| .xlsx local sans compte cloud | Indirect | Indirect | Très adapté |
| Gouvernance fine par scopes | Très adapté | Très adapté | Par racine fichiers |
| Comptes multiples | Documenté | Multi-utilisateur OAuth | Fichiers seulement |
Choisir sans idéologie
Le bon choix est l'environnement réel du client. Une entreprise sous Microsoft 365 doit utiliser Graph et les permissions existantes plutôt que copier des fichiers dans un workflow parallèle. Une organisation Google doit rester dans Google Workspace. Un fichier Excel isolé n'a pas besoin d'un serveur Graph si Excel MCP suffit.
Position Educasium
À retenir : Educasium doit enseigner Microsoft 365 MCP comme un connecteur d'entreprise gouverné par scopes Graph. La productivité vient après la permission.
Ce qu'il faut montrer
Un atelier sain commence par --list-permissions et --read-only. L'apprenant voit quelles permissions seront demandées, active un preset étroit, lit quelques messages ou fichiers, puis prépare une action non envoyée. Les écritures viennent seulement après validation humaine.
Cette méthode est plus importante que la démo. Elle apprend à gérer l'identité, les permissions et le cycle de vie des tokens, qui sont les vrais sujets d'un MCP Microsoft 365 en production.