thomaspical/MCP-Outlook-Local-Server
If you are the rightful owner of MCP-Outlook-Local-Server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
MCP Outlook is a robust Model Context Protocol server that integrates Claude with Microsoft Outlook using COM automation, allowing users to access emails and calendars directly from Claude Code/Desktop.
📧 MCP Outlook - Intégration Claude + Outlook
Accédez à vos emails et calendriers Outlook directement depuis Claude Code/Desktop !
Un serveur MCP (Model Context Protocol) robuste qui connecte Claude à Microsoft Outlook via COM automation. Installation en 2 minutes, fonctionne sur Windows, WSL et Claude Desktop.
✨ Fonctionnalités
- 📧 Emails : Lire, envoyer, rechercher dans vos emails
- 📅 Calendrier : Consulter et créer des événements/réunions
- 🔄 Auto-détection : Reconnexion automatique, gestion d'erreurs intelligente
- 🛡️ Sécurisé : Utilise votre profil Outlook local authentifié
- ⚡ Rapide : Accès direct COM, pas d'API externe
🚀 Installation Express (2 minutes)
Prérequis
- ✅ Windows avec Microsoft Outlook installé et configuré
- ✅ Node.js 18+ (Télécharger)
- ✅ Claude Desktop ou Claude Code installé
Option A : Claude Desktop (Windows) - Le plus simple
# 1. Télécharger et installer
git clone https://github.com/votre-repo/mcp-outlook.git
cd mcp-outlook
npm install
# 2. Tester que ça fonctionne
npm start
# ✅ Vous devriez voir : "[MCP Outlook] Server is running over stdio (local, COM-based). Ready."
Configuration Claude Desktop :
// Fichier : %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"outlook-local": {
"command": "node",
"args": ["C:\\chemin\\complet\\vers\\mcp-outlook-local.js"]
}
}
}
Option B : Claude Code (WSL/Linux) - Installation automatique
# 1. Cloner dans un dossier accessible depuis Windows ET WSL
git clone https://github.com/votre-repo/mcp-outlook.git
cd mcp-outlook
npm install
# 2. Démarrer le bridge (dans un terminal Windows)
npm run bridge
# ✅ Vous devriez voir : "[HTTP Bridge] Serveur démarré sur le port 3001"
# 3. Ajouter à Claude Code (dans WSL)
claude mcp add outlook-wsl node /mnt/c/chemin/vers/mcp-outlook-wsl-client.js
# 4. Vérifier
claude mcp list
# ✅ Vous devriez voir : "outlook-wsl: ... - ✓ Connected"
🎯 Test rapide - Ça marche ?
Dans Claude Desktop/Code, tapez :
Quel est le dernier email outlook reçu ?
Résultat attendu :
📧 Dernier email reçu :
• De : Jean Dupont <jean@company.com>
• Objet : Réunion de demain à 14h
• Reçu : 23/08/2024 à 09:15
• Aperçu : Bonjour, je vous confirme la réunion...
⚙️ Configuration détaillée
🪟 Pour Claude Desktop (Windows uniquement)
1. Localiser le fichier de config :
# Ouvrir l'Explorateur Windows et aller à :
%APPDATA%\Claude\claude_desktop_config.json
2. Ajouter la configuration :
{
"mcpServers": {
"outlook-local": {
"command": "node",
"args": ["C:\\Users\\VotreNom\\Documents\\mcp-outlook\\mcp-outlook-local.js"],
"env": {}
}
}
}
3. Redémarrer Claude Desktop
🐧 Pour Claude Code (WSL/Linux)
Architecture : Claude Code (WSL) ↔ HTTP Bridge (Windows) ↔ Outlook (COM)
1. Installation côté Windows :
# Dans PowerShell ou CMD, dans le dossier du projet
npm run bridge
# Laisser tourner ce terminal
2. Installation côté WSL :
# Ajouter le serveur MCP
claude mcp add outlook-wsl node /mnt/c/Users/VotreNom/Documents/mcp-outlook/mcp-outlook-wsl-client.js
# Vérifier
claude mcp list
3. URL du bridge (si problème de connexion) :
# Trouver l'IP Windows depuis WSL
ip route show | grep default
# Utiliser cette IP au lieu de 172.30.48.1 dans mcp-outlook-wsl-client.js si nécessaire
🎪 Exemples d'usage avec Claude
Une fois installé, vous pouvez utiliser un langage naturel avec Claude :
💬 Vous dites | 🤖 Claude fait |
---|---|
"Quel est le dernier email outlook reçu ?" | Affiche le dernier email avec expéditeur, objet, date |
"Montre-moi mes emails non lus" | Liste uniquement les emails non lus |
"Mes emails pro non lus" | Emails non lus du profil professionnel spécifiquement |
"Cherche les emails de Pierre dans ma boîte" | Filtre par expéditeur spécifique |
"Envoie un email depuis mon compte pro" | Envoie via un profil Outlook spécifique |
"Mes réunions de demain sur le calendrier entreprise" | Planning depuis un profil spécifique |
🔧 Outils techniques disponibles
📨 list_emails - Lister les emails avec filtres avancés
Usage naturel : "Montre-moi mes emails non lus"
, "Cherche les emails de Pierre"
, "Mes emails non lus"
Paramètres techniques :
folder
:"inbox"
|"sent"
|"drafts"
(défaut: inbox)top
: nombre d'emails (défaut: 20, max: 200)query
: filtre de recherche global (optionnel)profile
: nom du profil Outlook à utiliser (optionnel)unreadOnly
:true
pour emails non lus uniquement (défaut: false)fromSender
: filtrer par expéditeur spécifique (optionnel)
Exemples JSON :
{
"folder": "inbox",
"top": 10,
"unreadOnly": true
}
{
"folder": "inbox",
"profile": "mon-profil@entreprise.com",
"fromSender": "manager@entreprise.com",
"top": 5
}
📤 send_email - Envoyer des emails
Usage naturel : "Envoie un email à john@company.com"
, "Écris un brouillon pour Marie"
Paramètres techniques :
to
: destinataires (requis)subject
: objet (requis)body
: contenucc
,bcc
: copieshtml
: format HTML (défaut: false)attachments
: fichiers à joindredraft
: sauver en brouillon (défaut: false)profile
: nom du profil Outlook à utiliser (optionnel)
Exemple JSON :
{
"to": "contact@exemple.com",
"subject": "Rapport mensuel",
"body": "Ci-joint le rapport...",
"attachments": ["C:\\Documents\\rapport.pdf"]
}
📅 list_events - Consulter le calendrier
Usage naturel : "Mes réunions de demain"
, "Mon planning de la semaine"
Paramètres techniques :
start
: date début ISO (requis)end
: date fin ISO (requis)top
: nombre max d'événements (défaut: 50)profile
: nom du profil Outlook à utiliser (optionnel)
Exemple JSON :
{
"start": "2024-08-24T00:00:00Z",
"end": "2024-08-24T23:59:59Z"
}
📆 create_event - Créer des événements
Usage naturel : "Crée une réunion demain à 14h"
, "Programme un call avec l'équipe"
Paramètres techniques :
subject
: titre (requis)start
,end
: dates ISO (requis)location
: lieubody
: descriptionrequiredAttendees
: participantsasMeeting
: envoyer invitations (défaut: true)profile
: nom du profil Outlook à utiliser (optionnel)
Exemple JSON :
{
"subject": "Réunion équipe",
"start": "2024-08-25T14:00:00Z",
"end": "2024-08-25T15:00:00Z",
"requiredAttendees": ["alice@exemple.com"]
}
🔧 Scripts de test
Tester rapidement le système :
# Test complet du système
node test-mcp.js
# Validation de l'intégration
node validate-integration.js
⚠️ Dépannage express
🚨 "Le bridge n'est pas disponible"
# Dans un terminal Windows, dans le dossier du projet :
npm run bridge
# ✅ Vous devez voir : "[HTTP Bridge] Serveur démarré sur le port 3001"
🚨 "winax.Object is not a constructor"
# Réinstaller les dépendances Windows
npm install --force
npm rebuild winax
🚨 "Unable to access Outlook via COM"
- ✅ Ouvrir Outlook au moins une fois
- ✅ Configurer un profil de messagerie
- ✅ Redémarrer en tant qu'administrateur si nécessaire
🚨 "MCP Server not found" dans Claude
# Vérifier le chemin complet dans la config Claude
# Pour Claude Desktop : %APPDATA%\Claude\claude_desktop_config.json
# Pour Claude Code : claude mcp list
🚨 IP Bridge incorrect (WSL)
# Trouver la bonne IP Windows :
ip route show | grep default
# Puis modifier BRIDGE_URL dans mcp-outlook-wsl-client.js
🏗️ Architecture technique
Claude Desktop/Code
↓ (MCP Protocol)
mcp-outlook-wsl-client.js (WSL)
↓ (HTTP: port 3001)
mcp-outlook-http-bridge.js (Windows)
↓ (MCP Protocol)
mcp-outlook-local.js (Windows)
↓ (COM Automation)
Microsoft Outlook (Windows)
📁 Fichiers du projet
mcp-outlook-local.js
- Serveur MCP principal (COM Windows)mcp-outlook-http-bridge.js
- Bridge HTTP robuste avec auto-restartmcp-outlook-wsl-client.js
- Client MCP intelligent pour WSLCLAUDE.md
- Documentation détaillée pour Claudetest-mcp.js
- Suite de tests automatisésvalidate-integration.js
- Script de validation finale
🛡️ Sécurité & Performance
- ✅ Accès local uniquement - Pas d'appels réseau externes
- ✅ Authentification native - Utilise votre session Outlook
- ✅ Zéro stockage - Aucun token ou credential stocké
- ✅ Auto-recovery - Redémarrage automatique en cas de crash
- ✅ Cache intelligent - Optimisation des performances
🚀 Pour aller plus loin
Scripts personnalisés :
- Créer des alias dans CLAUDE.md pour vos requêtes fréquentes
- Modifier les paramètres par défaut dans les outils
- Ajouter des validations métier spécifiques
Intégrations avancées :
- Connecter à d'autres outils MCP (calendriers, CRM...)
- Automatiser des workflows emails + calendrier
- Créer des rapports personnalisés
🤝 Support & Contribution
Problème ? Idée ?
🎯 Installation réussie ? Tapez
"Quel est le dernier email outlook reçu ?"
dans Claude !