Join Microsoft 365 MCP Server

Join Microsoft 365 MCP Server

Enables AI assistants to seamlessly interact with Microsoft 365 services through the Graph API, featuring super tools, unified search, and intelligent learning.

Category
Visit Server

README

<p align="center"> <img src="https://img.shields.io/badge/Microsoft%20365-0078D4?style=for-the-badge&logo=microsoft&logoColor=white" alt="Microsoft 365"> <img src="https://img.shields.io/badge/MCP%20Protocol-00A9CE?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZmlsbD0id2hpdGUiIGQ9Ik0xMiAyTDIgN2wxMCA1IDEwLTV6Ii8+PC9zdmc+" alt="MCP"> <img src="https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white" alt="Docker"> <img src="https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript"> </p>

<h1 align="center">πŸš€ Join Microsoft 365 MCP Server</h1>

<p align="center"> <strong>The Ultimate AI-Powered Gateway to Microsoft 365</strong><br> <strong>Der ultimative KI-gestΓΌtzte Zugang zu Microsoft 365</strong> </p>

<p align="center"> A powerful Model Context Protocol (MCP) server enabling AI assistants to seamlessly interact with Microsoft 365 services through the Graph API.<br> Ein leistungsstarker Model Context Protocol (MCP) Server, der KI-Assistenten ermΓΆglicht, nahtlos mit Microsoft 365-Diensten ΓΌber die Graph API zu interagieren. </p>

<p align="center"> <a href="#-overview--ΓΌbersicht">Overview</a> β€’ <a href="#-quick-start--schnellstart">Quick Start</a> β€’ <a href="#-features--funktionen">Features</a> β€’ <a href="#-super-tools--super-tools">Super Tools</a> β€’ <a href="#-tool-categories--tool-kategorien">Tools</a> β€’ <a href="#-configuration--konfiguration">Configuration</a> β€’ <a href="#-security--sicherheit">Security</a> </p>


πŸ“‹ Table of Contents / Inhaltsverzeichnis


🌟 Overview / Übersicht

English

The Join Microsoft 365 MCP Server transforms how AI assistants interact with Microsoft 365. Instead of simple API wrappers, it provides an intelligent layer that understands context, learns from usage patterns, and executes complex multi-step operations seamlessly.

Key Innovations:

  • Super Tools Mode: Consolidates 126+ individual tools into 11 unified "Super-Tools" for easier LLM decision-making
  • Microsoft 365 Unified Search: Primary search tool that searches across all M365 content and suggests specific tools to use next
  • Dual Timezone Display: Shows both server local time and UTC for all calendar events and emails
  • Quick Summary Lists: Comprehensive overview lists at the top of responses to ensure no item is overlooked
  • Intelligent Learning System: Adapts and improves based on usage patterns
  • Read-Only Mode: Safe exploration without write operations

Deutsch

Der Join Microsoft 365 MCP Server revolutioniert die Art, wie KI-Assistenten mit Microsoft 365 interagieren. Statt einfacher API-Wrapper bietet er eine intelligente Schicht, die Kontext versteht, aus Nutzungsmustern lernt und komplexe Multi-Step-Operationen nahtlos ausfΓΌhrt.

Wichtige Innovationen:

  • Super-Tools-Modus: Konsolidiert 126+ einzelne Tools zu 11 vereinheitlichten "Super-Tools" fΓΌr einfachere LLM-Entscheidungen
  • Microsoft 365 Unified Search: PrimΓ€res Suchtool, das alle M365-Inhalte durchsucht und spezifische Tools fΓΌr die weitere Nutzung vorschlΓ€gt
  • Dual-Zeitzonen-Anzeige: Zeigt sowohl Server-Lokalzeit als auch UTC fΓΌr alle Kalendertermine und E-Mails
  • SchnellΓΌbersichtslisten: Umfassende Übersichtslisten am Anfang von Antworten, damit kein Element ΓΌbersehen wird
  • Intelligentes Lernsystem: Passt sich an und verbessert sich basierend auf Nutzungsmustern
  • Read-Only-Modus: Sichere Erkundung ohne Schreiboperationen

Why Choose This Server? / Warum diesen Server wΓ€hlen?

Feature / Funktion Traditional APIs / Traditionelle APIs Join MS365 MCP Server
Context Understanding / KontextverstΓ€ndnis ❌ None / Keines βœ… Deep semantic understanding / Tiefes semantisches VerstΓ€ndnis
Multi-step Operations / Multi-Step-Operationen ❌ Manual orchestration / Manuelle Orchestrierung βœ… Automatic chaining / Automatische Verkettung
Learning System / Lernsystem ❌ Static / Statisch βœ… Adaptive learning from usage / Adaptives Lernen aus Nutzung
Natural Language / NatΓΌrliche Sprache ❌ Not supported / Nicht unterstΓΌtzt βœ… Ask questions naturally / Fragen natΓΌrlich stellen
Tool Consolidation / Tool-Konsolidierung ❌ 126+ individual tools / 126+ einzelne Tools βœ… 11 Super-Tools / 11 Super-Tools
Timezone Display / Zeitzonen-Anzeige ❌ Single timezone / Einzelne Zeitzone βœ… Local + UTC / Lokal + UTC
Result Overview / ErgebnisΓΌbersicht ❌ Detailed only / Nur detailliert βœ… Quick summary + details / SchnellΓΌbersicht + Details

⚑ Quick Start / Schnellstart

Prerequisites / Voraussetzungen

English:

  • Docker and Docker Compose
  • A Microsoft 365 account (personal, work, or school)
  • Azure AD App Registration (for production use)

Deutsch:

  • Docker und Docker Compose
  • Ein Microsoft 365-Konto (privat, geschΓ€ftlich oder Schulkonto)
  • Azure AD App-Registrierung (fΓΌr Produktionseinsatz)

🐳 Docker Deployment / Docker-Bereitstellung

Option 1: Docker Compose (Recommended / Empfohlen)

# 1. Create configuration file / Konfigurationsdatei erstellen
cp stack.env.example stack.env

# 2. Configure your Azure AD credentials in stack.env
# Konfigurieren Sie Ihre Azure AD-Anmeldedaten in stack.env
nano stack.env

# 3. Start the server / Server starten
docker compose up -d

# For standalone mode (without Traefik):
# FΓΌr Standalone-Modus (ohne Traefik):
docker compose --profile standalone up -d

Option 2: Docker Run

# Pull the image / Image herunterladen
docker pull aijoin/join-ms-365-mcp-server:latest

# Run with environment variables / Mit Umgebungsvariablen ausfΓΌhren
docker run -d \
  --name ms365-mcp \
  -p 3000:3000 \
  -e MS365_MCP_CLIENT_ID=your-client-id \
  -e MS365_MCP_TENANT_ID=your-tenant-id \
  -e MS365_MCP_USE_SUPER_TOOLS=true \
  -v ./data:/app/data \
  aijoin/join-ms-365-mcp-server:latest \
  --http 3000 -v

MCP Client Integration / MCP-Client-Integration

English: Connect your AI assistant to the running server:

Deutsch: Verbinden Sie Ihren KI-Assistenten mit dem laufenden Server:

{
  "mcpServers": {
    "ms365": {
      "url": "https://your-server.com/mcp",
      "transportType": "streamable-http"
    }
  }
}

First Authentication / Erste Authentifizierung

English: Simply ask your AI assistant: "Log me into Microsoft 365" - the server will guide you through device code authentication.

Deutsch: Fragen Sie einfach Ihren KI-Assistenten: "Melde mich bei Microsoft 365 an" - der Server fΓΌhrt Sie durch die Device-Code-Authentifizierung.


🎯 Features / Funktionen

Core Capabilities / Kernfunktionen

Capability / Funktion Description / Beschreibung
11 Super-Tools Consolidated interface replacing 126+ individual tools
Microsoft 365 Unified Search Primary search tool across all M365 content
90+ Individual Tools Comprehensive coverage of Microsoft 365 services (classic mode)
Intelligent Search Cross-product search with semantic understanding
Deep Research Multi-step reasoning for complex questions
Learning System Improves over time based on usage patterns
Dual Timezone Display Server local time + UTC for all dates/times
Quick Summary Lists Overview lists to ensure nothing is missed
Download Links Generate direct download links for files
Microsoft Loop Support Loop file detection and content extraction
Read-Only Mode Safe exploration without write operations
Preset Filtering Load only the tools you need

Supported Microsoft 365 Services / UnterstΓΌtzte Microsoft 365-Dienste

<table> <tr> <td width="25%">

πŸ“§ Outlook

  • Email management / E-Mail-Verwaltung
  • Folder organization / Ordnerorganisation
  • Attachments / AnhΓ€nge
  • Drafts / EntwΓΌrfe

</td> <td width="25%">

πŸ“… Calendar

  • Events & meetings / Termine & Besprechungen
  • Scheduling / Terminplanung
  • Recurring events / Wiederkehrende Termine
  • Meeting times / Besprechungszeiten

</td> <td width="25%">

πŸ“ OneDrive

  • File operations / Dateioperationen
  • Folder management / Ordnerverwaltung
  • Sharing / Freigabe
  • Download/Upload

</td> <td width="25%">

πŸ’¬ Teams

  • Chats & messages / Chats & Nachrichten
  • Channels / KanΓ€le
  • Team management / Teamverwaltung
  • Transcripts / Transkripte

</td> </tr> <tr> <td>

🌐 SharePoint

  • Sites & lists / Websites & Listen
  • Document libraries / Dokumentbibliotheken
  • Site search / Websitesuche
  • Permissions / Berechtigungen

</td> <td>

πŸ“Š Excel

  • Worksheet operations / Arbeitsblattoperationen
  • Range manipulation / Bereichsmanipulation
  • Charts / Diagramme
  • Formatting / Formatierung

</td> <td>

βœ… Tasks

  • To-Do lists / Aufgabenlisten
  • Planner tasks / Planner-Aufgaben
  • Task assignment / Aufgabenverteilung
  • Due dates / FΓ€lligkeitsdaten

</td> <td>

πŸ“” OneNote

  • Notebooks
  • Sections & pages / Abschnitte & Seiten
  • Content creation / Inhaltserstellung
  • Search / Suche

</td> <td>

πŸ”„ Microsoft Loop

  • Loop file detection / Loop-Datei-Erkennung
  • Collaborative documents / Kollaborative Dokumente
  • Content extraction / Inhalts-Extraktion
  • Fluid format parsing / Fluid-Format-Parsing

</td> </tr> </table>


πŸš€ Super Tools / Super-Tools

English

Super-Tools Mode consolidates 126+ individual tools into 11 unified "Super-Tools". Each Super-Tool accepts an action parameter to specify the operation, making it much easier for LLMs to choose the right tool.

Enable Super-Tools Mode:

# Via environment variable / Über Umgebungsvariable
MS365_MCP_USE_SUPER_TOOLS=true

# Or via Docker / Oder ΓΌber Docker
docker run -d \
  -e MS365_MCP_USE_SUPER_TOOLS=true \
  aijoin/join-ms-365-mcp-server:latest \
  --http 3000

Deutsch

Super-Tools-Modus konsolidiert 126+ einzelne Tools zu 11 vereinheitlichten "Super-Tools". Jedes Super-Tool akzeptiert einen action-Parameter zur Spezifikation der Operation, was es fΓΌr LLMs viel einfacher macht, das richtige Tool zu wΓ€hlen.

Super-Tools-Modus aktivieren:

# Über Umgebungsvariable
MS365_MCP_USE_SUPER_TOOLS=true

# Oder ΓΌber Docker
docker run -d \
  -e MS365_MCP_USE_SUPER_TOOLS=true \
  aijoin/join-ms-365-mcp-server:latest \
  --http 3000

Super-Tools List / Super-Tools-Liste

# Tool Description / Beschreibung
0 search πŸ” PRIMARY - Microsoft 365 Unified Search across emails, calendar, files, SharePoint, Teams. Returns results and suggests which specific tools to use next.
1 email πŸ“§ Unified email operations: list, get, folders, attachments, search, send, reply, delete, move
2 calendar πŸ“… Calendar operations: list, get, view, calendars, create-event, update-event, delete-event
3 teams πŸ’¬ Teams, Channels, Chats: list-teams, get-team, channels, channel-messages, chats, chat-messages
4 files πŸ“ OneDrive files: drives, list, get, download, search, root
5 tasks βœ… To-Do & Planner: todo-lists, todo-tasks, planner-tasks, create-todo, update-todo, delete-todo
6 contacts πŸ‘₯ Contacts & Users: list-contacts, get-contact, list-users, current-user
7 meetings πŸŽ₯ Online Meetings: list-meetings, get-meeting, transcripts, recordings
8 sharepoint 🌐 SharePoint: search-sites, get-site, site-drives, site-lists
9 notes πŸ“” OneNote: notebooks, sections, pages, page-content, search-pages
10 assistant πŸ€– Smart operations: ask, search, my-day, my-week, person-info, project-overview, follow-ups

Example Usage / Beispielverwendung

English:

{
  "tool": "search",
  "arguments": {
    "query": "Project Alpha meeting notes",
    "entityTypes": ["message", "event", "driveItem"],
    "size": 10
  }
}

Deutsch:

{
  "tool": "search",
  "arguments": {
    "query": "Projekt Alpha Besprechungsnotizen",
    "entityTypes": ["message", "event", "driveItem"],
    "size": 10
  }
}

Read-Only Mode Support / Read-Only-Modus-UnterstΓΌtzung

English: All Super-Tools respect the READ_ONLY environment variable. Write operations (send, create, update, delete) are automatically blocked with clear error messages when read-only mode is enabled.

Deutsch: Alle Super-Tools respektieren die READ_ONLY Umgebungsvariable. Schreiboperationen (send, create, update, delete) werden automatisch blockiert mit klaren Fehlermeldungen, wenn der Read-Only-Modus aktiviert ist.

# Enable read-only mode / Read-Only-Modus aktivieren
READ_ONLY=1
# or / oder
MS365_MCP_READ_ONLY=true

πŸ• Dual Timezone Display / Dual-Zeitzonen-Anzeige

English

All calendar events and emails now display both server local time and UTC for easy reference:

⏰ 10:30 (UTC: 09:30)

Features:

  • Server local time (primary display)
  • UTC time (for reference)
  • Combined display format: HH:MM (UTC: HH:MM)
  • ISO 8601 UTC timestamps in structured data

Deutsch

Alle Kalendertermine und E-Mails zeigen jetzt sowohl Server-Lokalzeit als auch UTC zur einfachen Referenz:

⏰ 10:30 (UTC: 09:30)

Funktionen:

  • Server-Lokalzeit (primΓ€re Anzeige)
  • UTC-Zeit (zur Referenz)
  • Kombiniertes Anzeigeformat: HH:MM (UTC: HH:MM)
  • ISO 8601 UTC-Zeitstempel in strukturierten Daten

Example Output / Beispielausgabe

Calendar Event / Kalendertermin:

πŸ“… Montag, 28.01.2026 (1 Termin)
──────────────────────────────────────────────────
πŸ’» Kickoff-Briefing
   ⏰ 10:30 (UTC: 09:30) - 11:30 (UTC: 10:30) (1h)
   πŸ“ Conference Room A

Email / E-Mail:

πŸ“¬ Project Update
   ⏰ 09:15 (UTC: 08:15)
   πŸ‘€ Von: Max MΓΌller <max@example.com>

πŸ“‹ Quick Summary Lists / SchnellΓΌbersichtslisten

English

To ensure no calendar event or email is overlooked, all responses now include a Quick Summary List at the top, followed by the detailed view.

Calendar Quick Summary:

πŸ“‹ SCHNELLÜBERSICHT ALLER TERMINE:
────────────────────────────────────────────────────────────
1. πŸ’» 28.01.2026 10:30 (UTC: 09:30) | Kickoff-Briefing
2. πŸ“ 28.01.2026 14:00 (UTC: 13:00) | Team Meeting
3. πŸ’» 28.01.2026 16:30 (UTC: 15:30) | Client Call

═══════════════════════════════════════════════════════════
πŸ“– DETAILANSICHT:
═══════════════════════════════════════════════════════════

Email Quick Summary:

πŸ“‹ SCHNELLÜBERSICHT ALLER E-MAILS:
────────────────────────────────────────────────────────────
1. πŸ“¬πŸ“Ž 28.01.2026 09:15 (UTC: 08:15) | Max MΓΌller | Projekt Update...
2. πŸ“­ 27.01.2026 18:30 (UTC: 17:30) | Anna Schmidt | Meeting Notizen

═══════════════════════════════════════════════════════════
πŸ“– DETAILANSICHT:
═══════════════════════════════════════════════════════════

Deutsch

Um sicherzustellen, dass kein Kalendertermin oder E-Mail ΓΌbersehen wird, enthalten alle Antworten jetzt eine SchnellΓΌbersichtsliste am Anfang, gefolgt von der Detailansicht.

Kalender-SchnellΓΌbersicht:

πŸ“‹ SCHNELLÜBERSICHT ALLER TERMINE:
────────────────────────────────────────────────────────────
1. πŸ’» 28.01.2026 10:30 (UTC: 09:30) | Kickoff-Briefing
2. πŸ“ 28.01.2026 14:00 (UTC: 13:00) | Team Meeting
3. πŸ’» 28.01.2026 16:30 (UTC: 15:30) | Client Call

═══════════════════════════════════════════════════════════
πŸ“– DETAILANSICHT:
═══════════════════════════════════════════════════════════

E-Mail-SchnellΓΌbersicht:

πŸ“‹ SCHNELLÜBERSICHT ALLER E-MAILS:
────────────────────────────────────────────────────────────
1. πŸ“¬πŸ“Ž 28.01.2026 09:15 (UTC: 08:15) | Max MΓΌller | Projekt Update...
2. πŸ“­ 27.01.2026 18:30 (UTC: 17:30) | Anna Schmidt | Meeting Notizen

═══════════════════════════════════════════════════════════
πŸ“– DETAILANSICHT:
═══════════════════════════════════════════════════════════

πŸ›  Tool Categories / Tool-Kategorien

πŸ” Authentication Tools / Authentifizierungs-Tools

Secure authentication with multi-account support / Sichere Authentifizierung mit Multi-Account-UnterstΓΌtzung.

Tool Description / Beschreibung Notes / Hinweise
login Authenticate via device code flow / Authentifizierung ΓΌber Device-Code-Flow Required before using other tools / Erforderlich vor Nutzung anderer Tools
logout Log out from Microsoft account / Von Microsoft-Konto abmelden Clears cached tokens / LΓΆscht gecachte Tokens
verify-login Check authentication status / Authentifizierungsstatus prΓΌfen Non-interactive verification / Nicht-interaktive Verifizierung
list-accounts List cached Microsoft accounts / Gecachte Microsoft-Konten auflisten Multi-account support / Multi-Account-UnterstΓΌtzung
select-account Switch between accounts / Zwischen Konten wechseln Seamless account switching / Nahtloser Kontenwechsel
remove-account Remove account from cache / Konto aus Cache entfernen Clean up stored credentials / Gespeicherte Anmeldedaten bereinigen

πŸ“§ Email & Communication Tools / E-Mail- & Kommunikations-Tools

Complete email management and shared mailbox support / VollstΓ€ndige E-Mail-Verwaltung und Shared-Mailbox-UnterstΓΌtzung.

Personal Email / PersΓΆnliche E-Mail

Tool Description / Beschreibung Parameters
list-mail-messages List emails with filtering / E-Mails mit Filterung auflisten top, filter, search, orderby
get-mail-message Get full email content / VollstΓ€ndigen E-Mail-Inhalt abrufen messageId
send-mail Send new email / Neue E-Mail senden to, subject, body, attachments
create-draft-email Create email draft / E-Mail-Entwurf erstellen to, subject, body
delete-mail-message Delete email / E-Mail lΓΆschen messageId
move-mail-message Move email to folder / E-Mail in Ordner verschieben messageId, folderId
list-mail-folders List all mail folders / Alle E-Mail-Ordner auflisten -
list-mail-folder-messages List messages in folder / Nachrichten in Ordner auflisten folderId

Super-Tool: email

English: Unified email operations with action-based interface:

{
  "tool": "email",
  "arguments": {
    "action": "list",
    "top": 25,
    "search": "Project Alpha"
  }
}

Available actions: list, get, folders, child-folders, attachments, search, send, reply, delete, move

Deutsch: Vereinheitlichte E-Mail-Operationen mit aktionsbasierter Schnittstelle:

{
  "tool": "email",
  "arguments": {
    "action": "list",
    "top": 25,
    "search": "Projekt Alpha"
  }
}

VerfΓΌgbare Aktionen: list, get, folders, attachments, search, send, reply, delete, move

πŸ“… Calendar Tools / Kalender-Tools

Full calendar management with meeting scheduling / VollstΓ€ndige Kalenderverwaltung mit Besprechungsplanung.

Tool Description / Beschreibung Parameters
list-calendars List all calendars / Alle Kalender auflisten -
list-calendar-events List events / Termine auflisten top, filter, orderby
get-calendar-event Get event details / Termindetails abrufen eventId
create-calendar-event Create new event / Neuen Termin erstellen subject, start, end, attendees
update-calendar-event Update event / Termin aktualisieren eventId, updates
delete-calendar-event Delete event / Termin lΓΆschen eventId
get-calendar-view Get calendar view / Kalenderansicht abrufen startDateTime, endDateTime
find-meeting-times Find available slots / VerfΓΌgbare Zeitslots finden attendees, duration

Super-Tool: calendar

English: Unified calendar operations:

{
  "tool": "calendar",
  "arguments": {
    "action": "view",
    "startDateTime": "2026-01-28T00:00:00Z",
    "endDateTime": "2026-01-29T00:00:00Z"
  }
}

Available actions: list, get, view, calendars, specific-calendar, create-event, update-event, delete-event

Deutsch: Vereinheitlichte Kalender-Operationen:

{
  "tool": "calendar",
  "arguments": {
    "action": "view",
    "startDateTime": "2026-01-28T00:00:00Z",
    "endDateTime": "2026-01-29T00:00:00Z"
  }
}

VerfΓΌgbare Aktionen: list, get, view, calendars, specific-calendar, create-event, update-event, delete-event

πŸ“ File & Drive Tools / Datei- & Laufwerk-Tools

OneDrive file management with upload/download capabilities / OneDrive-Dateiverwaltung mit Upload/Download-Funktionen.

Tool Description / Beschreibung Parameters
list-drives List available drives / VerfΓΌgbare Laufwerke auflisten -
get-drive-root-item Get drive root folder / Laufwerks-Stammordner abrufen driveId
list-folder-files List files in folder / Dateien im Ordner auflisten folderId, top
download-onedrive-file-content Download file content / Dateiinhalt herunterladen itemId
upload-file-content Update file content / Dateiinhalt aktualisieren itemId, content
upload-new-file Upload new file / Neue Datei hochladen folderId, fileName, content
delete-onedrive-file Delete file / Datei lΓΆschen itemId

πŸ’¬ Microsoft Teams Tools / Microsoft Teams-Tools

Note / Hinweis: Requires --org-mode flag (work/school accounts only) / Erfordert --org-mode Flag (nur GeschΓ€fts-/Schulkonten)

Tool Description / Beschreibung Parameters
list-chats List all chats / Alle Chats auflisten top
get-chat Get chat details / Chat-Details abrufen chatId
list-chat-messages List messages in chat / Nachrichten im Chat auflisten chatId, top
send-chat-message Send chat message / Chat-Nachricht senden chatId, content
list-joined-teams List teams you're in / Teams auflisten, in denen Sie sind -
list-team-channels List team channels / Team-KanΓ€le auflisten teamId
list-channel-messages List channel messages / Kanalnachrichten auflisten teamId, channelId
send-channel-message Send channel message / Kanalnachricht senden teamId, channelId, content

πŸ” Search & Discovery Tools / Such- & Discovery-Tools

Powerful cross-product search capabilities / Leistungsstarke produktΓΌbergreifende Suchfunktionen.

Super-Tool: search (PRIMARY / PRIMΓ„R)

English: The recommended first tool for exploring Microsoft 365 content. Searches across emails, calendar, files, SharePoint, Teams, and suggests which specific tools to use next.

Deutsch: Das empfohlene erste Tool zur Erkundung von Microsoft 365-Inhalten. Durchsucht E-Mails, Kalender, Dateien, SharePoint, Teams und schlΓ€gt vor, welche spezifischen Tools als nΓ€chstes zu verwenden sind.

{
  "tool": "search",
  "arguments": {
    "query": "Project Alpha meeting notes",
    "entityTypes": ["message", "event", "driveItem"],
    "size": 10
  }
}

Entity Types: message, event, driveItem, site, list, listItem, chatMessage, person

Response includes:

  • Search results grouped by entity type
  • Tool suggestions for next steps
  • Total hits count
  • Formatted results with metadata

🧠 Intelligent Compound Tools / Intelligente Verbund-Tools

These intelligent tools automatically chain multiple API calls to answer complex contextual questions / Diese intelligenten Tools verkettet automatisch mehrere API-Aufrufe, um komplexe kontextuelle Fragen zu beantworten.

Tool What It Does / Was es tut Example Query / Beispielabfrage
find-messages-with-person Find all Teams chats with a person / Findet alle Teams-Chats mit einer Person "What did I discuss with John?" / "WorΓΌber habe ich mit John gesprochen?"
find-emails-with-person Find all email threads with a person / Findet alle E-Mail-Threads mit einer Person "Show emails from Sarah" / "Zeige E-Mails von Sarah"
find-meetings-with-person Find past & future meetings / Findet vergangene & zukΓΌnftige Besprechungen "When did I meet with Mike?" / "Wann habe ich mich mit Mike getroffen?"
discover-project Find all project-related content / Findet alle projektbezogenen Inhalte "Everything about Project Apollo" / "Alles ΓΌber Projekt Apollo"
discover-person Comprehensive person profile / Umfassendes Personenprofil "Who is John Smith?" / "Wer ist John Smith?"
get-my-week-summary Weekly productivity digest / WΓΆchentliche ProduktivitΓ€tszusammenfassung "What did I accomplish this week?" / "Was habe ich diese Woche erreicht?"

πŸ”¬ Intelligent Discovery System

English

The server features a sophisticated Search-First Strategy with multiple intelligent components:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    User Question                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    NLP Enhancer                                  β”‚
β”‚  β€’ Entity extraction  β€’ Intent classification                   β”‚
β”‚  β€’ Synonym expansion  β€’ Query refinement                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                Search-First Strategy                             β”‚
β”‚  β€’ Microsoft Search API (emails, files, chats, events)          β”‚
β”‚  β€’ Learning-informed entity type selection                      β”‚
β”‚  β€’ Automatic query refinement if no results                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Entity Extractor                                 β”‚
β”‚  β€’ Identifies sites, teams, users, files                        β”‚
β”‚  β€’ Extracts relevant keywords                                   β”‚
β”‚  β€’ Maps to specific product queries                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Data Aggregator                                  β”‚
β”‚  β€’ Deduplication  β€’ Relevance sorting                           β”‚
β”‚  β€’ LLM-optimized formatting  β€’ Source tracking                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Learning System                                  β”‚
β”‚  β€’ Records successful patterns  β€’ Updates confidence            β”‚
β”‚  β€’ Learns entity type preferences  β€’ User feedback              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Deutsch

Der Server verfΓΌgt ΓΌber eine ausgeklΓΌgelte Search-First-Strategie mit mehreren intelligenten Komponenten:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Benutzerfrage                                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    NLP Enhancer                                  β”‚
β”‚  β€’ EntitΓ€ts-Extraktion  β€’ Intent-Klassifizierung               β”‚
β”‚  β€’ Synonym-Erweiterung  β€’ Abfrage-Verfeinerung                  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                Search-First-Strategie                           β”‚
β”‚  β€’ Microsoft Search API (E-Mails, Dateien, Chats, Termine)      β”‚
β”‚  β€’ Lernbasierte EntitΓ€tstyp-Auswahl                             β”‚
β”‚  β€’ Automatische Abfrage-Verfeinerung bei keinen Ergebnissen     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Entity Extractor                                 β”‚
β”‚  β€’ Identifiziert Websites, Teams, Benutzer, Dateien             β”‚
β”‚  β€’ Extrahiert relevante SchlΓΌsselwΓΆrter                         β”‚
β”‚  β€’ Mappt auf spezifische Produktabfragen                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Data Aggregator                                  β”‚
β”‚  β€’ Deduplizierung  β€’ Relevanz-Sortierung                        β”‚
β”‚  β€’ LLM-optimierte Formatierung  β€’ Quellen-Tracking              β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                              β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Lernsystem                                       β”‚
β”‚  β€’ Zeichnet erfolgreiche Muster auf  β€’ Aktualisiert Konfidenz  β”‚
β”‚  β€’ Lernt EntitΓ€tstyp-PrΓ€ferenzen  β€’ Benutzer-Feedback          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

βš™ Configuration / Konfiguration

Docker Command Options / Docker-Befehlsoptionen

Option Description / Beschreibung Example / Beispiel
--org-mode Enable organization mode (Teams, SharePoint) / Organisationsmodus aktivieren (Teams, SharePoint) --org-mode
--read-only Disable write operations / Schreiboperationen deaktivieren --read-only
--http [port] Start HTTP server (default: 3000) / HTTP-Server starten (Standard: 3000) --http 8080
--preset <name> Load specific tool presets / Spezifische Tool-Presets laden --preset mail,calendar
--enabled-tools <pattern> Filter tools by regex / Tools nach Regex filtern --enabled-tools "excel|contact"
--toon Enable TOON format (30-60% token savings) / TOON-Format aktivieren (30-60% Token-Ersparnis) --toon
--discovery Start with discovery tools only / Nur mit Discovery-Tools starten --discovery
--cloud <type> Cloud environment (global/china) / Cloud-Umgebung (global/china) --cloud china
-v Enable verbose logging / AusfΓΌhrliches Logging aktivieren -v

Environment Variables / Umgebungsvariablen

Variable Description / Beschreibung Default
MS365_MCP_CLIENT_ID Azure AD app client ID Required / Erforderlich
MS365_MCP_TENANT_ID Azure AD tenant ID common
MS365_MCP_CLIENT_SECRET Client secret (confidential apps) / Client-Geheimnis (vertrauliche Apps) -
MS365_MCP_USE_SUPER_TOOLS Enable Super-Tools mode / Super-Tools-Modus aktivieren false
MS365_MCP_ORG_MODE Enable organization mode / Organisationsmodus aktivieren false
MS365_MCP_OUTPUT_FORMAT Output format (json/toon) / Ausgabeformat (json/toon) json
MS365_MCP_CLOUD_TYPE Cloud environment / Cloud-Umgebung global
MS365_MCP_KEYVAULT_URL Azure Key Vault URL -
MS365_MCP_MAX_RESULTS Maximum search results / Maximale Suchergebnisse 500
MS365_MCP_ANONYMIZE_PII Anonymize PII in knowledge base storage / PII in Wissensdatenbank anonymisieren true
READ_ONLY Enable read-only mode / Read-Only-Modus aktivieren false

Security Warning / Sicherheitswarnung: Setting MS365_MCP_ANONYMIZE_PII=false disables the automatic removal of personally identifiable information (email addresses, phone numbers, IDs, etc.) before storing data in the knowledge base. This is NOT recommended in production and may violate GDPR/DSGVO compliance. Only disable for development or debugging purposes. / Das Setzen von MS365_MCP_ANONYMIZE_PII=false deaktiviert die automatische Entfernung von personenbezogenen Daten (E-Mail-Adressen, Telefonnummern, IDs, etc.) vor der Speicherung in der Wissensdatenbank. Dies wird in der Produktion NICHT empfohlen und kann gegen DSGVO-Compliance verstoßen. Nur für Entwicklung oder Debugging deaktivieren. | LOG_LEVEL | Logging level / Logging-Level | info | | SILENT | Disable console output / Konsolenausgabe deaktivieren | false |

Docker Run Examples / Docker-Run-Beispiele

# Basic HTTP server / Grundlegender HTTP-Server
docker run -d -p 3000:3000 aijoin/join-ms-365-mcp-server:latest --http 3000

# Organization mode with Super-Tools / Organisationsmodus mit Super-Tools
docker run -d -p 3000:3000 \
  -e MS365_MCP_CLIENT_ID=your-client-id \
  -e MS365_MCP_TENANT_ID=your-tenant-id \
  -e MS365_MCP_USE_SUPER_TOOLS=true \
  aijoin/join-ms-365-mcp-server:latest \
  --http 3000 --org-mode -v

# Read-only mode with Super-Tools / Read-Only-Modus mit Super-Tools
docker run -d -p 3000:3000 \
  -e MS365_MCP_USE_SUPER_TOOLS=true \
  -e READ_ONLY=1 \
  aijoin/join-ms-365-mcp-server:latest \
  --http 3000

πŸ”‘ Authentication Methods / Authentifizierungsmethoden

1. Device Code Flow (Default / Standard)

English: Interactive authentication for users:

  1. Call the login tool
  2. Visit the provided URL and enter the code
  3. Call verify-login to confirm

Deutsch: Interaktive Authentifizierung fΓΌr Benutzer:

  1. Rufen Sie das login Tool auf
  2. Besuchen Sie die bereitgestellte URL und geben Sie den Code ein
  3. Rufen Sie verify-login auf, um zu bestΓ€tigen

2. OAuth Authorization Code Flow (HTTP Mode)

English: For web applications and remote servers:

  • Exposes OAuth endpoints at /auth/*
  • Requires Authorization: Bearer <token> for MCP requests
  • Supports MCP OAuth 2.1 with Dynamic Client Registration

Deutsch: FΓΌr Webanwendungen und Remote-Server:

  • Stellt OAuth-Endpunkte unter /auth/* bereit
  • Erfordert Authorization: Bearer <token> fΓΌr MCP-Anfragen
  • UnterstΓΌtzt MCP OAuth 2.1 mit Dynamic Client Registration

3. Bring Your Own Token (BYOT)

English: For integration with existing OAuth systems:

docker run -d -p 3000:3000 \
  -e MS365_MCP_OAUTH_TOKEN=your_token \
  aijoin/join-ms-365-mcp-server:latest \
  --http 3000

Deutsch: FΓΌr die Integration mit bestehenden OAuth-Systemen:

docker run -d -p 3000:3000 \
  -e MS365_MCP_OAUTH_TOKEN=your_token \
  aijoin/join-ms-365-mcp-server:latest \
  --http 3000

πŸ” Azure AD App Permissions / Azure AD App-Berechtigungen

Delegate Permissions Overview / Übersicht der Delegate Permissions

English: The following Microsoft Graph Delegate Permissions are required for the Azure AD App Registration. These permissions allow the server to access Microsoft 365 services on behalf of the signed-in user.

Deutsch: Die folgenden Microsoft Graph Delegate Permissions sind fΓΌr die Azure AD App-Registrierung erforderlich. Diese Berechtigungen ermΓΆglichen es dem Server, im Namen des angemeldeten Benutzers auf Microsoft 365-Dienste zuzugreifen.

Personal Account Permissions / PersΓΆnliche Kontoberechtigungen

These permissions work with personal Microsoft accounts (Outlook.com, Hotmail, etc.) and work/school accounts:

Permission Description / Beschreibung Required For / Erforderlich fΓΌr
User.Read Read user profile / Benutzerprofil lesen Basic functionality / GrundfunktionalitΓ€t
People.Read Read people / Personen lesen Contact search / Kontaktsuche
Mail.Read Read mail / E-Mails lesen Email reading / E-Mail-Lesen
Mail.ReadWrite Read and write mail / E-Mails lesen und schreiben Email management / E-Mail-Verwaltung
Mail.Send Send mail / E-Mails senden Send email / E-Mails senden
Calendars.Read Read calendars / Kalender lesen Calendar viewing / Kalender anzeigen
Calendars.ReadWrite Read and write calendars / Kalender lesen und schreiben Calendar management / Kalenderverwaltung
Contacts.Read Read contacts / Kontakte lesen Contact viewing / Kontakte anzeigen
Contacts.ReadWrite Read and write contacts / Kontakte lesen und schreiben Contact management / Kontaktverwaltung
Files.Read Read files / Dateien lesen OneDrive read / OneDrive lesen
Files.Read.All Read all files / Alle Dateien lesen Cross-user file access / BenutzerΓΌbergreifender Dateizugriff
Files.ReadWrite Read and write files / Dateien lesen und schreiben OneDrive management / OneDrive-Verwaltung
Tasks.Read Read tasks / Aufgaben lesen To-Do read / To-Do lesen
Tasks.ReadWrite Read and write tasks / Aufgaben lesen und schreiben To-Do management / To-Do-Verwaltung
Notes.Read Read OneNote / OneNote lesen OneNote viewing / OneNote anzeigen
Notes.Create Create OneNote / OneNote erstellen OneNote creation / OneNote-Erstellung
OnlineMeetings.Read Read online meetings / Online-Besprechungen lesen Meeting information / Besprechungsinformationen
OnlineMeetingTranscript.Read.All Read meeting transcripts / Besprechungstranskripte lesen Transcript access / Transkript-Zugriff
OnlineMeetingRecording.Read.All Read meeting recordings / Besprechungsaufzeichnungen lesen Recording access / Aufzeichnungs-Zugriff

Organization Mode Permissions / Organisationsmodus-Berechtigungen

These permissions require work/school accounts and the --org-mode flag:

Permission Description / Beschreibung Required For / Erforderlich fΓΌr
User.Read.All Read all users / Alle Benutzer lesen User directory / Benutzerverzeichnis
Mail.Read.Shared Read shared mailboxes / Freigegebene PostfΓ€cher lesen Shared mailbox access / Zugriff auf freigegebene PostfΓ€cher
Mail.Send.Shared Send from shared mailboxes / Von freigegebenen PostfΓ€chern senden Send as shared mailbox / Senden als freigegebenes Postfach
Calendars.Read.Shared Read shared calendars / Freigegebene Kalender lesen Shared calendar access / Zugriff auf freigegebene Kalender
Chat.Read Read chats / Chats lesen Teams chat reading / Teams-Chat lesen
ChatMessage.Read Read chat messages / Chat-Nachrichten lesen Teams message reading / Teams-Nachrichten lesen
ChatMessage.Send Send chat messages / Chat-Nachrichten senden Teams message sending / Teams-Nachrichten senden
Team.ReadBasic.All Read basic team info / Grundlegende Team-Informationen lesen Teams listing / Teams auflisten
TeamMember.Read.All Read team members / Teammitglieder lesen Team member access / Zugriff auf Teammitglieder
Channel.ReadBasic.All Read basic channel info / Grundlegende Kanal-Informationen lesen Channel listing / KanΓ€le auflisten
ChannelMessage.Read.All Read all channel messages / Alle Kanalnachrichten lesen Channel message reading / Kanalnachrichten lesen
ChannelMessage.Send Send channel messages / Kanalnachrichten senden Channel message sending / Kanalnachrichten senden
Sites.Read.All Read all SharePoint sites / Alle SharePoint-Websites lesen SharePoint access / SharePoint-Zugriff

Permission Configuration / Berechtigungskonfiguration

English: To configure these permissions in Azure Portal:

  1. Go to Azure Active Directory β†’ App registrations
  2. Select your app registration
  3. Navigate to API permissions
  4. Click Add a permission β†’ Microsoft Graph β†’ Delegated permissions
  5. Add all required permissions from the tables above
  6. Click Grant admin consent (for organization permissions)

Deutsch: Um diese Berechtigungen im Azure-Portal zu konfigurieren:

  1. Gehen Sie zu Azure Active Directory β†’ App-Registrierungen
  2. WΓ€hlen Sie Ihre App-Registrierung aus
  3. Navigieren Sie zu API-Berechtigungen
  4. Klicken Sie auf Berechtigung hinzufΓΌgen β†’ Microsoft Graph β†’ Delegierte Berechtigungen
  5. FΓΌgen Sie alle erforderlichen Berechtigungen aus den obigen Tabellen hinzu
  6. Klicken Sie auf Administratorzustimmung erteilen (fΓΌr Organisationsberechtigungen)

Minimal Permission Set / Minimaler Berechtigungssatz

English: For read-only access, you can use a minimal set:

  • User.Read
  • Mail.Read
  • Calendars.Read
  • Files.Read
  • Tasks.Read
  • Contacts.Read
  • Notes.Read

Deutsch: FΓΌr schreibgeschΓΌtzten Zugriff kΓΆnnen Sie einen minimalen Satz verwenden:

  • User.Read
  • Mail.Read
  • Calendars.Read
  • Files.Read
  • Tasks.Read
  • Contacts.Read
  • Notes.Read

Note / Hinweis: The server automatically requests only the permissions needed based on enabled tools. Use --preset or --enabled-tools to limit the permission scope. / Der Server fordert automatisch nur die Berechtigungen an, die basierend auf aktivierten Tools benΓΆtigt werden. Verwenden Sie --preset oder --enabled-tools, um den Berechtigungsumfang einzuschrΓ€nken.


πŸ”’ Security & Compliance / Sicherheit & Compliance

Security Features / Sicherheitsfunktionen

  • βœ… OAuth 2.1 / PKCE - Secure token handling / Sichere Token-Verwaltung
  • βœ… Token validation - Verified against Microsoft Graph / Gegen Microsoft Graph verifiziert
  • βœ… Secure storage - Persistent volume for credentials / Persistenter DatentrΓ€ger fΓΌr Anmeldedaten
  • βœ… Read-only mode - Safe exploration without modifications / Sichere Erkundung ohne Γ„nderungen
  • βœ… Input validation - Zod schema validation on all inputs / Zod-Schema-Validierung fΓΌr alle Eingaben
  • βœ… Rate limiting - Configurable request limits / Konfigurierbare Anfragelimits
  • βœ… HTTPS/TLS - Traefik integration for production / Traefik-Integration fΓΌr Produktion

Compliance

  • ISO 27001 - Information security management / Informationssicherheitsmanagement
  • GDPR/DSGVO - Data protection by design / Datenschutz durch Design
  • OWASP - Security best practices / Sicherheitsbest Practices

πŸ“Š Query Dashboard / Abfrage-Dashboard

English

The Query Dashboard provides a secure web interface to view and analyze all user queries. This feature enables auditing, analytics, and debugging of MCP tool usage.

Features:

  • πŸ“ˆ Real-time Statistics - Total queries, unique users, success rates
  • πŸ” Query Search & Filtering - Filter by tool, user, date, status
  • πŸ“‰ Hourly Activity Charts - Visual query distribution over 24 hours
  • πŸ”’ Password Protected - Secure access via environment variable
  • πŸ“₯ GDPR Data Export - Export user data for data portability
  • πŸ—‘οΈ GDPR Erasure - Delete user data (Right to be Forgotten)

Deutsch

Das Query Dashboard bietet eine sichere WeboberflΓ€che zur Anzeige und Analyse aller Benutzerabfragen. Diese Funktion ermΓΆglicht Auditierung, Analysen und Debugging der MCP-Tool-Nutzung.

Funktionen:

  • πŸ“ˆ Echtzeit-Statistiken - Gesamtabfragen, eindeutige Benutzer, Erfolgsraten
  • πŸ” Abfrage-Suche & Filterung - Nach Tool, Benutzer, Datum, Status filtern
  • πŸ“‰ StΓΌndliche AktivitΓ€tsdiagramme - Visuelle Abfrageverteilung ΓΌber 24 Stunden
  • πŸ”’ PasswortgeschΓΌtzt - Sicherer Zugriff ΓΌber Umgebungsvariable
  • πŸ“₯ DSGVO-Datenexport - Benutzerdaten fΓΌr DatenportabilitΓ€t exportieren
  • πŸ—‘οΈ DSGVO-LΓΆschung - Benutzerdaten lΓΆschen (Recht auf Vergessenwerden)

Enabling the Dashboard / Dashboard aktivieren

# In stack.env or docker-compose environment
# In stack.env oder docker-compose Umgebung
DASHBOARD_PASSWORD=your-secure-password-here

Access the dashboard at: https://your-server.com/dashboard / Zugriff auf das Dashboard unter: https://your-server.com/dashboard


πŸ“š API Reference / API-Referenz

MCP Client Configuration / MCP-Client-Konfiguration

OpenWebUI / Remote Clients

{
  "mcpServers": {
    "ms365": {
      "url": "https://your-server.com/mcp",
      "transportType": "streamable-http"
    }
  }
}

Local Development / Lokale Entwicklung

{
  "mcpServers": {
    "ms365": {
      "url": "http://localhost:3000/mcp",
      "transportType": "streamable-http"
    }
  }
}

Tool Response Format / Tool-Antwortformat

All tools return MCP-compliant responses / Alle Tools geben MCP-konforme Antworten zurΓΌck:

interface McpToolResult {
  content: Array<{
    type: 'text' | 'image' | 'resource';
    text?: string;
    data?: string;
    mimeType?: string;
    uri?: string;
  }>;
  isError?: boolean;
}

🐳 Docker Deployment / Docker-Bereitstellung

Production with Traefik / Produktion mit Traefik

# docker-compose.yml
services:
  ms365-mcp-server:
    image: aijoin/join-ms-365-mcp-server:latest
    container_name: ms365-mcp
    restart: unless-stopped
    env_file:
      - stack.env
    command: ['--http', '3000', '-v']
    volumes:
      - ./data:/app/data
    labels:
      - 'traefik.enable=true'
      - 'traefik.http.routers.ms365-mcp.rule=Host(`ms365-mcp.yourdomain.com`)'
      - 'traefik.http.routers.ms365-mcp.entrypoints=websecure'
      - 'traefik.http.routers.ms365-mcp.tls.certresolver=myresolver'
    networks:
      - web

networks:
  web:
    external: true

Build from Source / Aus Quellcode erstellen

# Clone the repository / Repository klonen
git clone https://github.com/michelfritzschjoin/join-ms-365-mcp-server.git
cd join-ms-365-mcp-server

# Build the image / Image erstellen
docker build -t ms365-mcp-server .

# Run / AusfΓΌhren
docker run -p 3000:3000 ms365-mcp-server --http 3000

🀝 Contributing / Beitragen

English:

  1. Fork the repository
  2. Run npm install
  3. Generate client: npm run generate
  4. Make changes
  5. Run verification: npm run verify
  6. Submit PR

Deutsch:

  1. Repository forken
  2. npm install ausfΓΌhren
  3. Client generieren: npm run generate
  4. Γ„nderungen vornehmen
  5. Verifizierung ausfΓΌhren: npm run verify
  6. PR einreichen

πŸ“„ License / Lizenz

All Rights Reserved Β© 2026 Join GmbH


πŸ“ž Support / Support


ℹ️ Version Information / Versionsinformationen

English: The version is automatically read from package.json at runtime. The displayed version in the banner and CLI is always synchronized with the package version - no manual updates required.

Deutsch: Die Version wird automatisch zur Laufzeit aus package.json gelesen. Die angezeigte Version im Banner und CLI ist immer mit der Paketversion synchronisiert - keine manuellen Updates erforderlich.


<p align="center"> <strong>Built with ❀️ by Join GmbH</strong><br> <strong>Mit ❀️ erstellt von Join GmbH</strong> </p>

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured