MCP-Outlook-Local-Server

thomaspical/MCP-Outlook-Local-Server

3.3

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.

Tools
4
Resources
0
Prompts
0

📧 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 : contenu
  • cc, bcc : copies
  • html : format HTML (défaut: false)
  • attachments : fichiers à joindre
  • draft : 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 : lieu
  • body : description
  • requiredAttendees : participants
  • asMeeting : 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"

  1. ✅ Ouvrir Outlook au moins une fois
  2. ✅ Configurer un profil de messagerie
  3. ✅ 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-restart
  • mcp-outlook-wsl-client.js - Client MCP intelligent pour WSL
  • CLAUDE.md - Documentation détaillée pour Claude
  • test-mcp.js - Suite de tests automatisés
  • validate-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 !