Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Outlook ServerSchedule a Teams meeting with Sarah for tomorrow at 2 PM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Outlook Server
Un serveur Model Context Protocol (MCP) pour Microsoft Outlook, permettant à des agents IA comme Claude Desktop d'interagir avec ta boîte mail et ton calendrier via l'API Microsoft Graph.
✨ Fonctionnalités
📧 Mail : Lire, consulter et envoyer des emails
📅 Calendrier : Lister et créer des événements avec lien Teams automatique
🔐 Authentification : Azure AD Device Code Flow avec cache de token persistant
🔄 Auto-refresh : Le token se renouvelle automatiquement
🛠️ Outils disponibles
Outil | Description | Paramètres |
| Liste les 10 derniers emails de la boîte de réception | — |
| Lit le contenu complet d'un email |
|
| Envoie un email |
|
| Liste les événements des 7 prochains jours | — |
| Crée un événement (avec lien Teams automatique) |
|
🧰 Prérequis
Un compte Microsoft (personnel ou professionnel)
🚀 Installation étape par étape
Étape 1 — Cloner le projet
git clone https://github.com/FRESHSK/mcp_outlook_01.git
cd mcp_outlook_01
npm installÉtape 2 — Créer une App Azure AD (une seule fois)
Aller sur Azure Portal - App Registrations
Cliquer "New registration"
Remplir le formulaire :
Name :
MCP OutlookSupported account types : choisir la 3ème option (Multitenant + personal Microsoft accounts)
Redirect URI :
Public client/native→http://localhostCliquer Register
Activer les flux publics :
Menu gauche → Authentication
Scroll bas → Advanced settings
Allow public client flows → Yes
Cliquer Save
Copier l'Application (client) ID depuis Overview
Étape 3 — Ajouter les permissions Microsoft Graph API
Dans le Azure Portal, aller sur ton App Registration
Menu gauche → API permissions
Cliquer "Add a permission"
Choisir Microsoft Graph
Choisir Delegated permissions
Rechercher et cocher les permissions suivantes :
Permission | Type | Description |
| Delegated | Lire le profil de l'utilisateur connecté |
| Delegated | Lire les emails |
| Delegated | Lire les emails partagés |
| Delegated | Lire les infos de base des emails |
| Delegated | Lire et modifier les emails |
| Delegated | Lire et modifier les emails partagés |
| Delegated | Envoyer des emails |
| Delegated | Envoyer des emails au nom d'autres |
| Delegated | Lire les calendriers |
| Delegated | Lire les calendriers partagés |
| Delegated | Lire les infos de base des calendriers |
| Delegated | Lire et modifier les calendriers |
| Delegated | Lire et modifier les calendriers partagés |
Cliquer "Add permissions"
Cliquer "Grant admin consent for ..." puis confirmer
Résultat attendu dans Azure Portal :
✅ User.Read (Delegated) - Granted
✅ Mail.Read (Delegated) - Granted
✅ Mail.Read.Shared (Delegated) - Granted
✅ Mail.ReadBasic (Delegated) - Granted
✅ Mail.ReadWrite (Delegated) - Granted
✅ Mail.ReadWrite.Shared (Delegated) - Granted
✅ Mail.Send (Delegated) - Granted
✅ Mail.Send.Shared (Delegated) - Granted
✅ Calendars.Read (Delegated) - Granted
✅ Calendars.Read.Shared (Delegated) - Granted
✅ Calendars.ReadBasic (Delegated) - Granted
✅ Calendars.ReadWrite (Delegated) - Granted
✅ Calendars.ReadWrite.Shared (Delegated) - GrantedÉtape 4 — Configurer les variables d'environnement
cp .env.example .envÉditer .env :
MICROSOFT_CLIENT_ID=ton-client-id-azure
MICROSOFT_TENANT_ID=common⚠️ Ne jamais committer le fichier
.env— il est dans.gitignore
ℹ️ Utilise
commonpour un compte personnel, ou ton Tenant ID pour un compte organisation.
Étape 5 — Première authentification Microsoft
node server.jsTu verras dans le terminal :
To sign in, use a web browser to open the page
https://microsoft.com/devicelogin and enter the code XXXXXXXXEntrer le code affiché dans le terminal
Se connecter avec ton compte Microsoft
Un fichier
token_cache.jsonsera créé automatiquement
✅ Cette étape n'est nécessaire qu'une seule fois. Le token se renouvelle automatiquement.
Étape 6 — Configurer Claude Desktop
Éditer le fichier claude_desktop_config.json de Claude Desktop :
Windows :
C:\Users\<user>\AppData\Roaming\Claude\claude_desktop_config.jsonMac :
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"outlook": {
"command": "node",
"args": [
"C:\\chemin\\absolu\\vers\\mcp_outlook_01\\server.js"
]
}
}
}Étape 7 — Redémarrer Claude Desktop
Fermer et relancer Claude Desktop. Tu peux maintenant demander à Claude :
"Montre-moi mes derniers emails"
"Lis l'email de GitHub"
"Envoie un email à mon collègue"
"Qu'est-ce que j'ai de prévu cette semaine ?"
"Planifie une réunion avec [email] demain à 10h" (crée automatiquement un lien Teams)
📁 Structure du projet
mcp_outlook_01/
├── server.js # Serveur MCP principal
├── .env # Variables d'environnement (non commité)
├── .env.example # Template des variables d'environnement
├── .gitignore # Fichiers ignorés par Git
├── token_cache.json # Cache du token MSAL (non commité)
└── package.json # Dépendances Node.js📦 Dépendances principales
Package | Usage |
| Serveur MCP |
| Authentification Microsoft |
| Requêtes HTTP vers Graph API |
| Variables d'environnement |
| Validation des paramètres des outils |
🔒 Sécurité
Le fichier
.envcontenant les clés est dans.gitignoreLe
token_cache.jsoncontenant les tokens Microsoft est dans.gitignoreNe jamais committer de clés API ou de tokens dans GitHub
🐛 Dépannage
Le MCP ne répond pas dans Claude Desktop ?
→ Vérifier les logs : AppData\Roaming\Claude\logs\mcp-server-outlook.log
Erreur d'authentification ou nouvelles permissions ?
→ Supprimer token_cache.json et relancer node server.js pour se réauthentifier
Erreur fetch is not a function ?
→ Vérifier que node-fetch est bien installé : npm install node-fetch
Erreur lors de l'envoi d'email ?
→ Le code gère les réponses 202 Accepted — vérifier que server.js est à jour
📝 Licence
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.