> ## Documentation Index
> Fetch the complete documentation index at: https://docs.localmind.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft 365 Integration

> Verbinden Sie Localmind mit Microsoft 365 um Mail-Entwürfe zu erstellen, Kalender abzurufen und SharePoint-Dateien im Chat zu nutzen.

Mit der Microsoft 365 Integration können Sie direkt aus dem Agentic Chat heraus auf Ihr Microsoft-Ökosystem zugreifen. Der Agent kann Mail-Entwürfe in Outlook erstellen, Kalender-Einträge abrufen und SharePoint-Dateien durchsuchen und analysieren.

Die Integration basiert auf dem Open-Source MCP Server [`@softeria/ms-365-mcp-server`](https://github.com/softeria/ms-365-mcp-server) (MIT-Lizenz) und nutzt die Microsoft Graph API. Sie verwendet ausschließlich **Delegated Permissions**: Jeder User authentifiziert sich selbst über den Device Code Flow und greift nur auf seine eigenen Daten zu. Der Zugriff ist auf die Berechtigungen des jeweils angemeldeten Users beschränkt – ein Zugriff auf Daten anderer User ist über diesen Weg nicht vorgesehen.

<Note>
  Für die meisten Anwendungsfälle sind die nativen Konnektoren der empfohlene Standard-Weg: [SharePoint](/integrations/SharePoint), [Outlook](/integrations/Outlook) und [Microsoft Teams](/integrations/Microsoft-Teams) richten Sie geführt über **Org-Einstellungen → Sicherheit → Zugangsdaten** ein. Diese MCP-Server-Variante ist der fortgeschrittene Alternativweg über einen selbst konfigurierten Tool-Server.
</Note>

## Voraussetzungen

* Microsoft 365 Tenant mit Entra ID (Azure AD)
* **Admin-Zugang zum Azure Portal** für die App Registration und Admin Consent
* **Mindestens Space Administrator** für die Tool Server Konfiguration

## Azure Einrichtung

<Steps>
  <Step title="Sicherheitsgruppe erstellen">
    Navigieren Sie in Entra ID zu **Gruppen → Neue Gruppe** und erstellen Sie eine Sicherheitsgruppe:

    | Feld                | Wert                                                |
    | ------------------- | --------------------------------------------------- |
    | Gruppentyp          | Sicherheit                                          |
    | Gruppenname         | `Localmind M365 Users`                              |
    | Gruppenbeschreibung | User mit Zugriff auf die Localmind M365 Integration |

    Fügen Sie unter **Mitglieder** alle User hinzu, die die Integration nutzen sollen. Diese Gruppe steuert, wer die App nutzen darf: Nur Mitglieder können sich über den Device Code Flow authentifizieren, Nicht-Mitglieder erhalten beim Login eine Fehlermeldung.
  </Step>

  <Step title="App Registration anlegen">
    Navigieren Sie zu **Entra ID → App-Registrierungen → Neue Registrierung** und tragen Sie folgende Werte ein:

    | Feld                    | Wert                                                              |
    | ----------------------- | ----------------------------------------------------------------- |
    | Name                    | `Localmind M365 Connector`                                        |
    | Unterstützte Kontotypen | Nur Konten in diesem Organisationsverzeichnis (Einzelner Mandant) |
    | Umleitungs-URI          | Leer lassen                                                       |

    Klicken Sie auf **Registrieren** und notieren Sie sich anschließend die **Anwendungs-ID (Client-ID)** und die **Verzeichnis-ID (Mandanten-ID)** von der Übersichtsseite — Sie brauchen beide Werte für die Localmind Konfiguration.
  </Step>

  <Step title="API-Berechtigungen vergeben">
    Navigieren Sie zu **API-Berechtigungen → Berechtigung hinzufügen → Microsoft Graph → Delegierte Berechtigungen** und fügen Sie folgende Berechtigungen hinzu:

    | Berechtigung     | Zweck                                  |
    | ---------------- | -------------------------------------- |
    | `User.Read`      | Basis-Profil des angemeldeten Users    |
    | `Calendars.Read` | Kalender-Einträge abrufen              |
    | `Mail.ReadWrite` | Mail-Entwürfe erstellen und lesen      |
    | `Files.Read.All` | OneDrive- und SharePoint-Dateien lesen |
    | `Sites.Read.All` | SharePoint Sites durchsuchen           |

    Klicken Sie anschließend auf **Administratoreinwilligung erteilen für \[Ihr Tenant]** und bestätigen Sie.

    <Warning>
      Verwenden Sie ausschließlich **Delegierte Berechtigungen** (Delegated Permissions), keine Anwendungsberechtigungen (Application Permissions). Delegierte Berechtigungen stellen sicher, dass jeder User nur auf seine eigenen Daten zugreift. Application Permissions würden der App eigenständigen Zugriff auf alle Mailboxen im Tenant geben.
    </Warning>
  </Step>

  <Step title="Öffentliche Client-Flows aktivieren">
    Navigieren Sie zu **Authentifizierung → Erweiterte Einstellungen**, setzen Sie **Öffentliche Clientflows zulassen** auf **Ja** und klicken Sie auf **Speichern**.

    Dies ermöglicht den **Device Code Flow**, über den sich User im Agentic Chat authentifizieren. Bei diesem Flow wird kein Client Secret benötigt. Die **App-Instanzeigenschaftssperre** kann auf den Standardeinstellungen belassen werden (alle Optionen angehakt).
  </Step>

  <Step title="Zugriff auf Sicherheitsgruppe einschränken">
    Wechseln Sie zu **Unternehmensanwendungen** (Enterprise Applications) – das ist ein separater Menüpunkt in Entra ID, nicht innerhalb der App-Registrierungen.

    Suchen Sie Ihre App (`Localmind M365 Connector`), setzen Sie unter **Eigenschaften** die Einstellung **Zuweisung erforderlich?** auf **Ja** und speichern Sie. Navigieren Sie dann zu **Benutzer und Gruppen → Benutzer/Gruppe hinzufügen** und weisen Sie die in Schritt 1 erstellte Sicherheitsgruppe (`Localmind M365 Users`) zu.

    Nur Mitglieder der zugewiesenen Gruppe können die Integration nutzen. Wenn ein User, der nicht in der Gruppe ist, versucht sich einzuloggen, erhält er die Fehlermeldung `AADSTS50105`.
  </Step>
</Steps>

## Localmind Konfiguration

<Steps>
  <Step title="Tool Server anlegen">
    Navigieren Sie in Localmind zu **Einstellungen → Tool Server → Neuen Tool Server erstellen** und tragen Sie folgende Werte ein:

    | Feld           | Wert                                                      |
    | -------------- | --------------------------------------------------------- |
    | Name           | `Microsoft 365`                                           |
    | Beschreibung   | `Mail-Entwürfe, Kalender, SharePoint via Microsoft Graph` |
    | Verbindungstyp | NPX-Paket                                                 |
    | Paket          | `@softeria/ms-365-mcp-server`                             |
    | Args           | `--org-mode`                                              |
  </Step>

  <Step title="Konfigurationsvariablen eintragen">
    Fügen Sie unter **Konfiguration** folgende Schlüssel-Wert-Paare hinzu:

    | Schlüssel             | Wert                                             | Sicher |
    | --------------------- | ------------------------------------------------ | ------ |
    | `MS365_MCP_TENANT_ID` | Ihre Verzeichnis-ID (Mandanten-ID) aus Schritt 2 | Nein   |
    | `MS365_MCP_CLIENT_ID` | Ihre Anwendungs-ID (Client-ID) aus Schritt 2     | Nein   |
    | `ENABLED_TOOLS`       | `mail\|calendar\|login\|verify\|sharepoint`      | Nein   |

    <Warning>
      Der MCP Server stellt im Vollmodus über **100 Tools** bereit. Diese werden alle als Tool-Beschreibungen in den System-Prompt des Agenten injiziert und können das Token-Limit sprengen – der Agent antwortet dann gar nicht mehr, auch nicht auf einfache Nachrichten. Die Variable `ENABLED_TOOLS` ist daher **zwingend erforderlich**.
    </Warning>

    `ENABLED_TOOLS` ist ein Regex-Pattern; mehrere Kategorien werden mit `|` (Pipe) getrennt. Die Tools `login` und `verify` sollten immer enthalten sein, da sie für die Authentifizierung benötigt werden. Beispiele:

    * `mail|calendar|login|verify` — nur Mail und Kalender
    * `mail|calendar|login|verify|sharepoint` — zusätzlich SharePoint
    * `mail|calendar|login|verify|drive|file|folder` — zusätzlich OneDrive
    * `mail|calendar|login|verify|excel` — zusätzlich Excel-Operationen

    Tenant ID und Client ID sind keine Geheimnisse – sie sind öffentliche Identifier. Ohne den Device Code Login eines berechtigten Users sind sie wertlos. Ein Client Secret wird bei diesem Flow nicht benötigt.
  </Step>

  <Step title="Speichern und Verbindung testen">
    Klicken Sie auf **Verbindung testen**, um zu prüfen, ob der MCP Server korrekt startet und die Tools geladen werden. Nach erfolgreichem Test klicken Sie auf **Speichern**.

    <Frame caption="Erfolgreicher Verbindungstest des Microsoft 365 MCP Servers in Localmind">
      <img src="https://mintcdn.com/localmind/Re6PNAUK2NraAKqH/footage/msmcp.png?fit=max&auto=format&n=Re6PNAUK2NraAKqH&q=85&s=87b2f5b5814059b8804fbab146127a91" alt="Microsoft 365 MCP Server Verbindungstest" width="905" height="483" data-path="footage/msmcp.png" />
    </Frame>
  </Step>
</Steps>

## Erster Login & Nutzung

<Steps>
  <Step title="Agentic Chat öffnen">
    Öffnen Sie einen Agentic Chat in Ihrem Privaten Space und schreiben Sie z.B.:

    > Zeig mir meine Kalender-Einträge für heute
  </Step>

  <Step title="Device Code Login durchführen">
    Der Agent erkennt, dass noch kein Token vorhanden ist und startet den Device Code Flow. Sie erhalten eine Nachricht mit einer URL und einem Code.

    <Frame caption="Der Agent zeigt den Device Code und die Login-URL direkt im Chat an">
      <img src="https://mintcdn.com/localmind/Re6PNAUK2NraAKqH/footage/deviceflow.png?fit=max&auto=format&n=Re6PNAUK2NraAKqH&q=85&s=d47df2a37cfbdad3dae9a87a21eadf7a" alt="Device Code Flow Login im Agentic Chat" width="948" height="469" data-path="footage/deviceflow.png" />
    </Frame>

    1. Öffnen Sie [https://microsoft.com/devicelogin](https://microsoft.com/devicelogin) in einem Browser
    2. Geben Sie den angezeigten Code ein
    3. Loggen Sie sich mit Ihrem Microsoft 365 Account ein (muss Mitglied der Sicherheitsgruppe sein)
    4. Bestätigen Sie die angeforderten Berechtigungen
  </Step>

  <Step title="Loslegen">
    Nach erfolgreichem Login hat der Agent Zugriff auf Ihre Microsoft 365 Daten. Das Token wird gecacht – Sie müssen sich nicht bei jedem Chat neu einloggen.
  </Step>
</Steps>

## Use Cases

**Mail-Entwurf erstellen** — „Erstelle einen Mail-Entwurf an [max@firma.de](mailto:max@firma.de) mit dem Betreff ‚Angebot Projektstart' und fasse unsere bisherige Diskussion als Inhalt zusammen." Der Entwurf erscheint in Outlook unter **Entwürfe**; Sie können ihn dort prüfen, bearbeiten und versenden.

**Kalender abfragen** — „Was steht morgen in meinem Kalender? Bereite mir eine Zusammenfassung mit Notizen vor." Der Agent listet Ihre Termine auf und kann Kontext aus dem Chat hinzufügen – z.B. offene Punkte aus einem vorherigen Gespräch als Vorbereitung für ein Meeting.

**SharePoint-Dateien im Chat nutzen** — „Suche in unserem SharePoint nach dem letzten Quartalsbericht und fasse die wichtigsten Kennzahlen zusammen." Der Agent findet die Datei über die SharePoint-Suche, liest den Inhalt und liefert eine strukturierte Zusammenfassung.

## Sicherheit & Datenschutz

**Datenisolation:** Jeder User authentifiziert sich selbst über den Device Code Flow. Der API-Zugriff läuft über `/me/`-Endpunkte und ist auf die eigenen Daten beschränkt. Ein Zugriff auf Daten anderer User ist über diesen Weg nicht vorgesehen – der Zugriff richtet sich immer nach den delegierten Berechtigungen des angemeldeten Users.

**Token-Speicherung:** Access Tokens werden lokal in der MCP Server Instanz gecacht und laufen automatisch ab. Refresh Tokens erneuern die Session ohne erneuten Login.

**GDPR / Datenschutz:** Der Abruf der Microsoft-365-Daten läuft direkt zwischen der Localmind-Instanz und der Microsoft Graph API. Beachten Sie: Chat-Inhalte – einschließlich der Daten, die der Agent über die Integration abruft – werden zur Inferenz an die konfigurierten Modell-Provider übermittelt. Welche Provider das sind, sehen Sie unter [Unterauftragsverarbeiter](/compliance/Sub-Processors).
