Cas pratique
Brancher Microsoft 365 à un agent Azure AI Foundry en MCP, avec les droits de chaque utilisateur
Par Ktifa ·
On héberge un serveur MCP Microsoft 365 open source (par exemple ms-365-mcp-server, licence MIT) dans votre abonnement Azure, protégé par Microsoft Entra. L’agent Azure AI Foundry s’y connecte en OAuth délégué : chaque utilisateur se connecte une fois, et l’agent cherche, lit ou prépare des brouillons dans Microsoft 365 avec ses seuls droits, sans copier vos documents dans une autre base.
Ce serveur MCP Microsoft 365, en place chez vous cette semaine ?Voir l’installation clé en main
Ce que vous allez obtenir
À la fin de ce guide, vos équipes posent des questions comme celles-ci dans SharePoint ou Teams, et l’agent répond à partir de leurs données Microsoft 365 :
- « Retrouve la dernière version du contrat Infogérance Sud et résume les clauses de résiliation. »
- « Qu’est-ce que Maison Ferrand nous a écrit ces deux dernières semaines ? »
- « Quels créneaux libres ai-je jeudi pour un rendez-vous d’une heure ? »
- « Prépare un brouillon de réponse à ce client, ton cordial, à relire. »
Chaque réponse est obtenue avec les droits de la personne connectée. Personne ne voit le dossier RH d’un collègue parce que l’agent, lui, y aurait accès.
L’architecture en une image
- Vos documents Base vectorielleCopie de SharePoint dans une autre base
- Planificateur Base vectorielleSynchronisation à maintenir, la nuit
- Agent Base vectorielleRecherche avec un compte technique
- Agent UtilisateurLes droits SharePoint sont à recopier à la main
Une copie de vos données à protéger, à tenir à jour, et des droits à reproduire.
- Utilisateur FoundryQuestion posée dans SharePoint ou Teams
- Foundry Serveur MCPAppel d’outil avec le jeton de l’utilisateur
- Serveur MCP Microsoft GraphRecherche Microsoft 365, au nom de l’utilisateur
- Foundry UtilisateurRéponse sourcée, avec ses seuls droits
Aucune copie : Microsoft 365 reste la seule source, déjà indexée, déjà sécurisée.
Étape 1 : choisir le serveur MCP
Inutile de l’écrire. ms-365-mcp-server est un serveur MCP open source (licence MIT, plus d’un millier d’étoiles sur GitHub, activement maintenu) qui couvre l’essentiel de Microsoft Graph : plus de 300 outils pour Outlook, l’agenda, OneDrive, SharePoint, Teams, Planner, To Do, OneNote et la recherche.
Ce qui en fait un bon choix pour une entreprise :
| Réglage | À quoi il sert |
|---|---|
--http |
Mode serveur, protégé par OAuth : obligatoire pour Foundry |
--org-mode |
Active les outils des comptes professionnels (SharePoint, Teams, boîtes partagées) |
--obo |
Flux « on-behalf-of » : le serveur échange le jeton de l’utilisateur contre un jeton Graph à son nom |
--read-only |
Lecture seule : aucune écriture possible dans Microsoft 365 |
--preset, --enabled-tools |
Ne garder que les outils utiles (mail, agenda, fichiers…) |
--allowed-scopes |
Plafonner les permissions Graph demandées, quel que soit l’outil |
Étape 2 : l’héberger dans votre Azure
Le serveur est distribué en paquet npm et en image Docker. Deux hébergements simples dans votre abonnement, en région Europe :
- Azure Container Apps : on déploie l’image, avec une instance minimum pour éviter les démarrages à froid.
- Azure Functions : en conteneur, sur l’offre Flex Consumption avec des instances toujours prêtes.
Un point d’attention, vérifié en pratique : Foundry demande la liste des outils de chaque serveur MCP avant chaque réponse. Un serveur qui s’endort ajoute plusieurs secondes à la première question. On garde donc toujours une instance prête.
Côté configuration, on renseigne l’application Microsoft Entra du serveur (MS365_MCP_CLIENT_ID, MS365_MCP_CLIENT_SECRET, MS365_MCP_TENANT_ID) et son adresse publique (--public-url), puis on vérifie les permissions réellement demandées :
npx @softeria/ms-365-mcp-server --org-mode --preset mail --list-permissions
Étape 3 : l’application Microsoft Entra
Une seule application suffit pour le serveur :
- Exposer une API avec un droit délégué
access_as_user: c’est ce que Foundry demandera au nom de l’utilisateur. - Permissions Microsoft Graph déléguées correspondant aux outils gardés (par exemple
Files.Read.All,Mail.Read,Calendars.Read), avec le consentement de l’administrateur. - URL de redirection : celle que Foundry vous indique à la création de la connexion (étape suivante).
Pas de permission « application » : le serveur n’agit jamais en son propre nom.
Étape 4 : la connexion OAuth dans Azure AI Foundry
Dans votre projet Foundry, on crée une connexion OAuth pour l’outil MCP : identifiant et secret du client Entra, adresses d’autorisation et de jeton de Microsoft Entra, droit demandé (api://<id-du-serveur>/access_as_user). Foundry renvoie une adresse de redirection, à ajouter dans l’application Entra.
On ajoute ensuite l’outil MCP à l’agent : l’adresse du serveur (https://…/mcp), un nom court (ms365), la connexion, et l’approbation désactivée pour un serveur en lecture seule, afin que l’agent enchaîne ses recherches sans attendre.
Étape 5 : la première question d’un utilisateur
- L’utilisateur pose sa question dans SharePoint ou Teams.
- Foundry voit qu’il ne s’est pas encore connecté au serveur
ms365et renvoie un lien de connexion. - L’utilisateur se connecte avec son compte Microsoft 365, une seule fois. Le lien expire au bout de quelques minutes : l’interface doit pouvoir en proposer un nouveau.
- Les questions suivantes passent directement : Foundry transmet le jeton de l’utilisateur au serveur, qui interroge Microsoft Graph à son nom.
Foundry Agents gère tout ce parcours dans SharePoint et Teams : le lien de connexion s’affiche dans la conversation, l’état de chaque serveur MCP est visible, et les outils appelés défilent pendant que l’agent travaille. Gratuit et open source. Voir Foundry Agents
Pourquoi cette approche est rapide
Les outils MCP sont appelés par Azure AI Foundry lui-même, dans Azure, au plus près du modèle. Pas de serveur de chat intermédiaire qui relance le modèle à chaque outil, comme dans LibreChat ou Open WebUI. Nous détaillons les allers-retours, schéma à l’appui, dans Agent Azure AI Foundry et MCP : pourquoi c’est plus rapide.
Les bonnes pratiques qu’on applique sur nos projets
- Commencer en lecture seule. Recherche, lecture, résumé. Les brouillons viennent ensuite ; l’envoi et la suppression, rarement.
- Peu d’outils, bien décrits. Un agent qui voit 20 outils choisit mieux qu’un agent qui en voit 300, et répond plus vite.
- Un agent par métier. Commercial, RH, juridique : chacun avec ses outils et ses consignes, visible seulement par son équipe.
- Mesurer. Foundry trace chaque appel d’outil : on regarde les questions sans bonne réponse et on ajuste les consignes chaque semaine.
- Faire relire les actions. Un brouillon d’e-mail à valider, une tâche à confirmer : l’agent prépare, l’humain décide.
Le même schéma s’applique à Odoo, à votre CRM ou à votre logiciel métier : un petit serveur MCP qui expose quelques outils bien choisis, protégé par OAuth, et branché sur l’agent. C’est souvent là que l’agent devient indispensable.