Zum Inhalt

MS 365 MCP-Server

Der MS 365 MCP-Server verbindet den CLYE AI mit Microsoft 365-Diensten über die Microsoft Graph API. Damit kann ein Assistent direkt auf E-Mails, Kalender, Dateien, Teams, SharePoint und viele weitere Dienste zugreifen und diese steuern.

Was der Server kann

Der Server stellt über 200 einzelne Werkzeuge bereit, die 1:1 auf Endpunkte der Microsoft Graph API abgebildet sind. Dazu gehören:

  • E-Mail – Nachrichten lesen, verfassen, senden, weiterleiten, beantworten, verschieben und löschen; Ordner und Regeln verwalten; Anhänge bearbeiten
  • Kalender – Termine anzeigen, erstellen, aktualisieren, absagen; Besprechungen annehmen oder ablehnen; freie Zeiten suchen
  • OneDrive – Dateien und Ordner durchsuchen, herunterladen, hochladen, umbenennen, verschieben, teilen und löschen
  • Excel – Tabellen, Tabellenblätter und Zellbereiche lesen und bearbeiten; Diagramme erstellen; Zeilen hinzufügen
  • OneNote – Notizbücher, Abschnitte und Seiten anlegen und lesen
  • To Do – Aufgabenlisten und Aufgaben verwalten; verknüpfte Ressourcen hinzufügen
  • Planner – Planneraufgaben lesen, erstellen und aktualisieren
  • Kontakte – Outlook-Kontakte lesen, anlegen, bearbeiten und löschen
  • Benutzerprofil – eigene Benutzerdaten und Postfacheinstellungen abrufen; Abwesenheitsnachrichten setzen
  • Teams & Chats – Kanalnachrichten und Chats lesen und senden; Reaktionen setzen; Anhänge abrufen (Org-Modus)
  • Online-Meetings – Besprechungen anlegen, abrufen und löschen; Transkripte, Aufzeichnungen und Anwesenheitsberichte herunterladen (Org-Modus)
  • SharePoint – Sites, Dokumentenbibliotheken und Listen durchsuchen, lesen und bearbeiten (Org-Modus)
  • Benutzerverwaltung – Nutzer suchen, Vorgesetzte und direkte Mitarbeitende abrufen, Gruppen verwalten (Org-Modus)
  • Präsenz – Onlinestatus für einzelne Nutzer oder Gruppen abrufen (Org-Modus)
  • Räume und Ressourcen – Rauminformationen und Raumlisten lesen (Org-Modus)
  • Geteilte Postfächer und Kalender – freigegebene Mailboxen und Kalender anderer Nutzer lesen und beschreiben (Org-Modus)

Betriebsmodi

Persönlicher Modus (Standard)

Im Standardbetrieb sind alle Werkzeuge für persönliche Microsoft-Konten (MSA) verfügbar: E-Mail, Kalender, OneDrive, Excel, OneNote, To Do, Planner und Kontakte. Dieser Modus benötigt keinen zusätzlichen Parameter.

Organisations-Modus (--org-mode)

Mit dem Flag --org-mode werden zusätzlich alle Werkzeuge für Geschäfts- und Schulkonten freigeschaltet:

  • Teams, Kanäle und Chats
  • Online-Meetings mit Transkripten, Aufzeichnungen und Anwesenheitsberichten
  • SharePoint-Sites und -Listen
  • Geteilte Postfächer und Kalender
  • Nutzerverwaltung, Gruppen, Präsenz
  • Virtuelle Events und Webinare
  • Räume und Ressourcen

Der Org-Modus muss beim Start des Servers aktiviert werden. Er kann nicht nachträglich zur Laufzeit zugeschaltet werden.

Authentifizierung

Der Server unterstützt drei Wege zur Anmeldung:

1. Gerätecode-Flow (Standard)

Der häufigste Weg für interaktive Nutzung:

  1. Das Werkzeug login aufrufen – der Server prüft zunächst, ob ein gültiges Token vorhanden ist.
  2. Falls nicht: URL und Code anzeigen lassen, im Browser aufrufen und mit dem Microsoft-Konto anmelden.
  3. Mit verify-login die erfolgreiche Anmeldung bestätigen.

Tokens werden sicher im Betriebssystem-Anmeldedatenspeicher abgelegt (Fallback: Datei).

2. OAuth Authorization Code Flow (HTTP-Modus)

Wenn der Server mit --http gestartet wird, ist OAuth-Authentifizierung verpflichtend. Der Server stellt OAuth-Endpunkte bereit und verlangt für alle Anfragen ein gültiges Bearer-Token. MCP-Clients, die OAuth unterstützen, übernehmen den Ablauf automatisch.

3. Eigenes Token (BYOT)

Für Systeme, die OAuth-Tokens extern verwalten, kann ein fertiges Access-Token übergeben werden:

MS365_MCP_OAUTH_TOKEN=dein_token npx @softeria/ms-365-mcp-server

Das Token muss selbst aktuell gehalten werden – der Server führt keine Token-Erneuerung durch.

Multi-Konto-Betrieb

Es können mehrere Microsoft-Konten gleichzeitig angemeldet sein. Sobald mehr als ein Konto aktiv ist, wird bei jedem Werkzeugaufruf automatisch ein account-Parameter ergänzt, über den das gewünschte Konto ausgewählt wird. Bestehende Einzelkonto-Setups funktionieren unverändert weiter.

Geteilte Postfächer

Für geteilte Postfächer gelten folgende Voraussetzungen:

  • Org-Modus ist aktiv (--org-mode)
  • Der angemeldete Nutzer hat in Exchange Zugriff auf das geteilte Postfach erhalten
  • Die E-Mail-Adresse des geteilten Postfachs wird als user-id-Parameter übergeben, z. B. buchhaltung@firma.de

Mit list-users lassen sich verfügbare Nutzer und geteilte Postfächer in der Organisation abrufen.

Werkzeug-Presets

Um den Start zu beschleunigen und weniger Tokens zu verbrauchen, können statt aller Werkzeuge nur bestimmte Kategorien geladen werden:

Preset Inhalt
mail E-Mail-Werkzeuge
calendar Kalender-Werkzeuge
files OneDrive-Dateiwerkzeuge
excel Excel-Werkzeuge
onenote OneNote-Werkzeuge
tasks To Do und Planner
contacts Outlook-Kontakte
search Microsoft-Suche
users Nutzerverwaltung
personal Alle persönlichen Werkzeuge
work Alle Organisations-Werkzeuge
all Alles

Wichtige Umgebungsvariablen

Variable Beschreibung
MS365_MCP_ORG_MODE=true Org-Modus aktivieren
MS365_MCP_OUTPUT_FORMAT=toon TOON-Format aktivieren
MS365_MCP_MAX_TOP=<n> Maximale Anzahl Ergebnisse pro Anfrage begrenzen
MS365_MCP_BODY_FORMAT=html E-Mail-Text als HTML statt als Text zurückgeben
MS365_MCP_CLOUD_TYPE=china Microsoft 365 China (21Vianet) verwenden
MS365_MCP_CLIENT_ID Eigene Azure-App-ID verwenden
MS365_MCP_TENANT_ID Eigene Tenant-ID verwenden
MS365_MCP_OAUTH_TOKEN Fertiges OAuth-Token direkt übergeben (BYOT)
MS365_MCP_TOKEN_CACHE_PATH Eigener Pfad für den Token-Cache
READ_ONLY=true Server nur lesend betreiben
ENABLED_TOOLS Werkzeuge per Regex-Muster filtern

Werkzeuge im Detail

E-Mail

Werkzeug Beschreibung
list-mail-messages Nachrichten im Posteingang auflisten, auch mit Volltextsuche (KQL)
list-mail-folders Alle Mailordner des Nutzers auflisten
list-mail-folder-messages Nachrichten in einem bestimmten Ordner auflisten
get-mail-message Eine einzelne Nachricht vollständig abrufen
send-mail Neue E-Mail senden
create-draft-email E-Mail-Entwurf anlegen
send-draft-message Vorhandenen Entwurf abschicken
reply-mail-message Auf eine E-Mail antworten
reply-all-mail-message Allen antworten
forward-mail-message E-Mail weiterleiten
move-mail-message Nachricht in einen anderen Ordner verschieben
update-mail-message Nachrichteneigenschaften aktualisieren (z. B. als gelesen markieren)
delete-mail-message Nachricht in den gelöschten Elementen verschieben
add-mail-attachment Anhang hinzufügen (bis 3 MB)
create-mail-attachment-upload-session Uploadvorgang für große Anhänge starten (bis 150 MB)
list-mail-attachments Anhänge einer Nachricht auflisten
get-mail-attachment Einzelnen Anhang abrufen
delete-mail-attachment Anhang aus einer Nachricht entfernen
list-mail-rules Posteingangsregeln eines Ordners auflisten
create-mail-rule Neue Posteingangsregel erstellen
update-mail-rule Vorhandene Regel aktualisieren oder deaktivieren
delete-mail-rule Regel löschen
create-mail-folder Neuen Mailordner anlegen
create-mail-child-folder Unterordner innerhalb eines bestehenden Ordners anlegen
update-mail-folder Ordner umbenennen
delete-mail-folder Ordner und all seine Inhalte löschen
get-mailbox-settings Postfacheinstellungen abrufen (z. B. Abwesenheitsnotiz)
update-mailbox-settings Postfacheinstellungen aktualisieren (z. B. Abwesenheitsnotiz setzen)

Geteilte Postfächer (Org-Modus)

Werkzeug Beschreibung
list-shared-mailbox-messages Nachrichten eines geteilten Postfachs auflisten
list-shared-mailbox-folder-messages Nachrichten in einem Ordner eines geteilten Postfachs auflisten
get-shared-mailbox-message Einzelne Nachricht aus einem geteilten Postfach abrufen
send-shared-mailbox-mail E-Mail über ein geteiltes Postfach senden

Kalender

Werkzeug Beschreibung
list-calendar-events Termine im Standardkalender auflisten (keine wiederkehrenden Einzeltermine)
get-calendar-view Terminansicht mit aufgelösten Serienterminen für einen Zeitraum
get-calendar-event Einzelnen Termin abrufen
create-calendar-event Neuen Termin anlegen
update-calendar-event Termin aktualisieren
delete-calendar-event Termin löschen
cancel-calendar-event Besprechung absagen und Teilnehmer benachrichtigen (nur Organisator)
accept-calendar-event Einladung annehmen
decline-calendar-event Einladung ablehnen
tentatively-accept-calendar-event Einladung vorläufig annehmen
forward-calendar-event Besprechungseinladung weiterleiten
list-calendars Alle Kalender des Nutzers auflisten
create-calendar Neuen Kalender anlegen
update-calendar Kalender umbenennen oder Farbe ändern
delete-calendar Kalender und all seine Termine löschen
list-calendar-event-instances Einzelne Vorkommen eines Serientermins auflisten
find-meeting-times Freie Besprechungszeiten für mehrere Teilnehmer finden
get-schedule Verfügbarkeit mehrerer Nutzer im Zeitverlauf abrufen
snooze-calendar-event-reminder Terminerinnerung verschieben
dismiss-calendar-event-reminder Terminerinnerung dauerhaft schließen
list-calendar-events-delta Änderungen im Kalender inkrementell synchronisieren
list-calendar-view-delta Änderungen in einem Zeitfenster inkrementell synchronisieren

Geteilte Kalender (Org-Modus)

Werkzeug Beschreibung
list-shared-calendar-events Termine im Kalender eines anderen Nutzers auflisten
get-shared-calendar-view Terminansicht eines anderen Nutzers für einen Zeitraum

OneDrive-Dateien

Werkzeug Beschreibung
list-drives Alle Laufwerke des Nutzers auflisten
get-drive-root-item Stammordner eines Laufwerks abrufen
list-folder-files Inhalte eines Ordners auflisten
get-drive-item Metadaten einer Datei oder eines Ordners abrufen
download-onedrive-file-content Temporäre Download-URL für eine Datei abrufen
upload-file-content Datei hochladen oder überschreiben (bis 4 MB)
create-upload-session Upload-Session für große Dateien starten
move-rename-onedrive-item Datei oder Ordner verschieben oder umbenennen
create-onedrive-folder Neuen Ordner anlegen
delete-onedrive-file Datei oder Ordner löschen
search-onedrive-files Dateien nach Name oder Inhalt suchen
share-drive-item Datei oder Ordner mit bestimmten Nutzern teilen
list-drive-item-permissions Zugriffsberechtigungen einer Datei auflisten
delete-drive-item-permission Berechtigung entfernen
list-drive-item-versions Versionshistorie einer Datei abrufen
get-drive-delta Änderungen in einem Ordner inkrementell verfolgen

Excel

Werkzeug Beschreibung
list-excel-worksheets Tabellenblätter einer Arbeitsmappe auflisten
get-excel-range Zellbereich lesen
format-excel-range Zellbereich formatieren
sort-excel-range Zellbereich sortieren
list-excel-tables Benannte Tabellen einer Arbeitsmappe auflisten
get-excel-table Details einer Tabelle abrufen
list-excel-table-rows Zeilen einer Tabelle auflisten
add-excel-table-rows Neue Zeilen zu einer Tabelle hinzufügen
create-excel-chart Diagramm in einem Tabellenblatt erstellen

OneNote

Werkzeug Beschreibung
list-onenote-notebooks Alle Notizbücher auflisten
create-onenote-notebook Neues Notizbuch anlegen
list-onenote-notebook-sections Abschnitte eines Notizbuchs auflisten
list-all-onenote-sections Alle Abschnitte über alle Notizbücher auflisten
create-onenote-section Neuen Abschnitt in einem Notizbuch anlegen
list-onenote-section-pages Seiten eines Abschnitts auflisten
get-onenote-page-content Seiteninhalt abrufen
create-onenote-page Neue Seite im Standardabschnitt anlegen
create-onenote-section-page Neue Seite in einem bestimmten Abschnitt anlegen
delete-onenote-page Seite löschen

To Do

Werkzeug Beschreibung
list-todo-task-lists Alle Aufgabenlisten auflisten
list-todo-tasks Aufgaben in einer Liste auflisten
get-todo-task Einzelne Aufgabe abrufen
create-todo-task Neue Aufgabe anlegen
update-todo-task Aufgabe aktualisieren oder als erledigt markieren
delete-todo-task Aufgabe löschen
list-todo-linked-resources Mit einer Aufgabe verknüpfte Ressourcen auflisten
create-todo-linked-resource Ressource (z. B. E-Mail oder URL) mit einer Aufgabe verknüpfen
delete-todo-linked-resource Verknüpfte Ressource entfernen

Planner

Werkzeug Beschreibung
list-planner-tasks Eigene Planner-Aufgaben auflisten
get-planner-plan Plan abrufen
list-plan-tasks Aufgaben eines Plans auflisten
get-planner-task Einzelne Aufgabe abrufen (liefert ETag für spätere Änderungen)
create-planner-task Neue Aufgabe anlegen
update-planner-task Aufgabe aktualisieren (ETag erforderlich)
get-planner-task-details Aufgabendetails abrufen (Checkliste, Beschreibung)
update-planner-task-details Aufgabendetails aktualisieren (ETag erforderlich)

Kontakte

Werkzeug Beschreibung
list-outlook-contacts Kontakte auflisten
get-outlook-contact Einzelnen Kontakt abrufen
create-outlook-contact Neuen Kontakt anlegen
update-outlook-contact Kontakt aktualisieren
delete-outlook-contact Kontakt löschen

Benutzerprofil

Werkzeug Beschreibung
get-current-user Eigene Benutzerdaten abrufen
get-my-profile-photo Eigenes Profilfoto abrufen
get-user-profile-photo Profilfoto eines anderen Nutzers abrufen (Org-Modus)

Benutzerverwaltung (Org-Modus)

Werkzeug Beschreibung
list-users Nutzer in der Organisation suchen
get-my-manager Eigenen Vorgesetzten abrufen
list-my-direct-reports Eigene direkte Mitarbeitende auflisten
get-user-manager Vorgesetzten eines bestimmten Nutzers abrufen
list-user-direct-reports Direkte Mitarbeitende eines bestimmten Nutzers auflisten
list-relevant-people Relevante Personen im eigenen Netzwerk auflisten
list-my-memberships Gruppen und Rollen des eigenen Nutzers auflisten

Gruppen (Org-Modus)

Werkzeug Beschreibung
list-groups Organisationsgruppen auflisten
get-group Gruppendetails abrufen
list-group-members Mitglieder einer Gruppe auflisten
list-group-owners Besitzer einer Gruppe auflisten
create-group Neue Gruppe anlegen
update-group Gruppe aktualisieren
delete-group Gruppe dauerhaft löschen
add-group-member Mitglied zur Gruppe hinzufügen
remove-group-member Mitglied aus der Gruppe entfernen
add-group-owner Besitzer hinzufügen
remove-group-owner Besitzer entfernen

Microsoft Teams (Org-Modus)

Teams und Kanäle

Werkzeug Beschreibung
list-joined-teams Beigetretene Teams auflisten
get-team Team-Details abrufen
list-team-channels Kanäle eines Teams auflisten
get-team-channel Kanaldetails abrufen
create-team-channel Neuen Kanal anlegen
update-team-channel Kanal aktualisieren
delete-team-channel Kanal löschen
list-team-members Teammitglieder auflisten
add-team-member Mitglied zum Team hinzufügen
remove-team-member Mitglied aus dem Team entfernen
list-channel-tabs Tabs eines Kanals auflisten
get-channel-files-folder SharePoint-Ordner eines Kanals abrufen

Kanalnachrichten

Werkzeug Beschreibung
list-channel-messages Nachrichten in einem Kanal auflisten
get-channel-message Einzelne Kanalnachricht abrufen
send-channel-message Nachricht in einen Kanal senden
reply-to-channel-message Auf eine Kanalnachricht antworten
list-channel-message-replies Antworten auf eine Kanalnachricht auflisten
set-channel-message-reaction Reaktion auf eine Kanalnachricht setzen
unset-channel-message-reaction Reaktion entfernen
list-channel-message-hosted-contents Eingebettete Bilder und Dateien einer Nachricht auflisten
get-channel-message-hosted-content Eingebetteten Inhalt herunterladen

Chats

Werkzeug Beschreibung
list-chats Eigene Chats auflisten
get-chat Chat-Details abrufen
create-chat Neuen 1:1- oder Gruppenchat erstellen
list-chat-members Chatmitglieder auflisten
list-chat-messages Nachrichten in einem Chat auflisten
get-chat-message Einzelne Chatnachricht abrufen
send-chat-message Nachricht in einen Chat senden
reply-to-chat-message Auf eine Chatnachricht antworten
list-chat-message-replies Antworten auf eine Chatnachricht auflisten
set-chat-message-reaction Reaktion setzen
unset-chat-message-reaction Reaktion entfernen
list-pinned-chat-messages Angepinnte Nachrichten auflisten
pin-chat-message Nachricht anpinnen
unpin-chat-message Nachricht loslösen
list-chat-message-hosted-contents Eingebettete Inhalte einer Chatnachricht auflisten
get-chat-message-hosted-content Eingebetteten Inhalt herunterladen

Online-Meetings (Org-Modus)

Werkzeug Beschreibung
list-online-meetings Online-Meetings auflisten (auch per Join-URL filterbar)
get-online-meeting Meeting-Details abrufen
create-online-meeting Neues Online-Meeting anlegen
update-online-meeting Meeting-Details aktualisieren
delete-online-meeting Meeting löschen

Transkripte und Aufzeichnungen

Werkzeug Beschreibung
list-meeting-transcripts Verfügbare Transkripte eines Meetings auflisten
get-meeting-transcript Metadaten eines Transkripts abrufen
get-meeting-transcript-content Transkriptinhalt im WebVTT-Format abrufen
list-meeting-recordings Aufzeichnungen eines Meetings auflisten
get-meeting-recording Metadaten einer Aufzeichnung abrufen
get-meeting-recording-content Download-URL für eine Aufzeichnung (MP4) abrufen

Anwesenheitsberichte

Werkzeug Beschreibung
list-meeting-attendance-reports Anwesenheitsberichte eines Meetings auflisten
get-meeting-attendance-report Einzelnen Bericht abrufen
list-meeting-attendance-records Individuelle Anwesenheitsdaten (wer war wann dabei) abrufen

SharePoint (Org-Modus)

Werkzeug Beschreibung
search-sharepoint-sites Sites suchen
get-sharepoint-site Site-Details abrufen
get-sharepoint-site-by-path Site über URL-Pfad abrufen
list-sharepoint-site-drives Dokumentbibliotheken einer Site auflisten
get-sharepoint-site-drive-by-id Bestimmte Dokumentbibliothek abrufen
list-sharepoint-site-items Elemente einer Site auflisten
get-sharepoint-site-item Einzelnes Element abrufen
list-sharepoint-site-lists Listen einer Site auflisten
get-sharepoint-site-list Listendetails abrufen
list-sharepoint-site-list-items Listeneinträge auflisten
get-sharepoint-site-list-item Einzelnen Listeneintrag abrufen
create-sharepoint-list-item Neuen Listeneintrag anlegen
update-sharepoint-list-item Listeneintrag aktualisieren
delete-sharepoint-list-item Listeneintrag löschen
get-sharepoint-sites-delta Änderungen an Sites inkrementell verfolgen

Präsenz (Org-Modus)

Werkzeug Beschreibung
get-my-presence Eigenen Online-Status abrufen
get-user-presence Online-Status eines Nutzers abrufen
get-presences-by-user-id Online-Status mehrerer Nutzer gleichzeitig abrufen (bis 650 IDs)

Virtuelle Events (Org-Modus)

Werkzeug Beschreibung
get-virtual-event-webinar Webinar-Details abrufen
list-webinar-sessions Sitzungen eines Webinars auflisten

Räume und Ressourcen (Org-Modus)

Werkzeug Beschreibung
get-room Raumdetails abrufen
get-room-list Raumliste abrufen
list-room-list-rooms Räume einer Raumliste auflisten
get-room-list-room Bestimmten Raum innerhalb einer Liste abrufen
update-place Raumeigenschaften aktualisieren

Suche

Werkzeug Beschreibung
search-query Übergreifende Suche über E-Mails, Dateien, Kalender, Chats und SharePoint
list-trending-insights Für den Nutzer relevante Dokumente basierend auf Aktivitätsmustern auflisten

Unterstützte Cloud-Umgebungen

Cloud Auth-Endpunkt Graph-Endpunkt
Global (Standard) login.microsoftonline.com graph.microsoft.com
China (21Vianet) login.chinacloudapi.cn microsoftgraph.chinacloudapi.cn

Die China-Umgebung wird mit --cloud china oder MS365_MCP_CLOUD_TYPE=china aktiviert.

Typische Einsatzfälle

  • E-Mail-Verwaltung: Posteingang sichten, E-Mails nach Absender oder Betreff filtern, direkt antworten, weiterleiten oder in Ordner sortieren lassen
  • Terminplanung: Kalender prüfen, freie Zeiten für Besprechungen finden, Einladungen versenden oder beantworten
  • Dateiarbeit: Dokumente in OneDrive suchen, herunterladen, umbenennen oder mit Kollegen teilen
  • Excel-Automatisierung: Tabelleninhalte auslesen, neue Zeilen einfügen, Auswertungen direkt im Assistenten durchführen
  • Teams-Kommunikation: Kanalnachrichten lesen und schreiben, Meeting-Transkripte analysieren, Anwesenheit prüfen
  • SharePoint-Integration: Listendaten auslesen oder aktualisieren, Dokumentbibliotheken durchsuchen
  • Aufgabenmanagement: To Do und Planner synchron halten, Aufgaben aus dem Chat direkt anlegen oder aktualisieren
  • Abwesenheitsnotiz: Automatische Abwesenheitsnachrichten per Assistent ein- oder ausschalten
  • Organigramm-Navigation: Vorgesetzte, direkte Mitarbeitende und Gruppenmitgliedschaften abrufen

Kurz gesagt

Der MS 365 MCP-Server verbindet den CLYE AI mit dem gesamten Microsoft-365-Ökosystem. Im persönlichen Modus stehen E-Mail, Kalender, OneDrive, Excel, OneNote, To Do, Planner und Kontakte bereit. Mit aktiviertem Org-Modus kommen Teams, SharePoint, Online-Meetings, Nutzerverwaltung, Präsenz und weitere Organisationsfunktionen hinzu. Über Presets und Werkzeugfilter lässt sich der Umfang je nach Einsatzszenario gezielt eingrenzen.