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:
Das Werkzeug login aufrufen – der Server prüft zunächst, ob ein gültiges Token vorhanden ist.
Falls nicht: URL und Code anzeigen lassen, im Browser aufrufen und mit dem Microsoft-Konto anmelden.
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.