Interact with Microsoft Outlook via the Microsoft Graph API
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 |
|---|---|---|
list_messages |
Liste les 10 derniers emails de la boîte de réception | — |
get_message |
Lit le contenu complet d'un email | message_id |
send_message |
Envoie un email | subject, toRecipients, content, contentType |
list_events |
Liste les événements des 7 prochains jours | — |
create_event |
Crée un événement (avec lien Teams automatique) | subject, startDateTime, endDateTime, location, content, attendees |
🧰 Prérequis
- Node.js 18+
- 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 Outlook - Supported account types : choisir la 3ème option (Multitenant + personal Microsoft accounts)
- Redirect URI :
Public client/native→http://localhost - Cliquer Register
- Name :
- 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 |
|---|---|---|
User.Read |
Delegated | Lire le profil de l'utilisateur connecté |
Mail.Read |
Delegated | Lire les emails |
Mail.Read.Shared |
Delegated | Lire les emails partagés |
Mail.ReadBasic |
Delegated | Lire les infos de base des emails |
Mail.ReadWrite |
Delegated | Lire et modifier les emails |
Mail.ReadWrite.Shared |
Delegated | Lire et modifier les emails partagés |
Mail.Send |
Delegated | Envoyer des emails |
Mail.Send.Shared |
Delegated | Envoyer des emails au nom d'autres |
Calendars.Read |
Delegated | Lire les calendriers |
Calendars.Read.Shared |
Delegated | Lire les calendriers partagés |
Calendars.ReadBasic |
Delegated | Lire les infos de base des calendriers |
Calendars.ReadWrite |
Delegated | Lire et modifier les calendriers |
Calendars.ReadWrite.Shared |
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.js
Tu verras dans le terminal :
To sign in, use a web browser to open the page
https://microsoft.com/devicelogin and enter the code XXXXXXXX
- Ouvrir https://microsoft.com/devicelogin
- Entrer le code affiché dans le terminal
- Se connecter avec ton compte Microsoft
- Un fichier `token
Tools (5)
list_messagesLists the 10 most recent emails from the inbox.get_messageReads the full content of an email.send_messageSends an email.list_eventsLists events for the next 7 days.create_eventCreates an event with an automatic Teams link.Environment Variables
MICROSOFT_CLIENT_IDrequiredThe Application (client) ID from Azure App RegistrationMICROSOFT_TENANT_IDrequiredThe Tenant ID (use 'common' for personal accounts)Configuration
{ "mcpServers": { "outlook": { "command": "node", "args": ["/path/to/mcp_outlook_01/server.js"], "env": { "MICROSOFT_CLIENT_ID": "your-client-id", "MICROSOFT_TENANT_ID": "common" } } } }