Skip to main content
Glama

@developer.k/ms-graph-mcp

Ein modularer Model-Context-Protocol-Server für Microsoft Graph und Microsoft 365.

Er verwendet die delegierte Gerätecode-Authentifizierung und stellt Tools für Teams, Outlook-Mail, Kalender, Microsoft To Do, Kontakte, Postfacheinstellungen und Outlook-Kategorien bereit.

GitHub-Repository | npm-Paket

Siehe das Änderungsprotokoll für Versionshinweise und Upgrade-Anforderungen.

Funktionen

Modul

Fähigkeiten

Graph

Gerätecode-Authentifizierung, Authentifizierungsstatus, angemeldetes Profil

Teams

Teams, Kanäle, Kanalnachrichten, Chats, Chat-Mitglieder, Self-Chat-Nachrichten

Mail

Ordner, Nachrichtensuche, Anhänge, Entwürfe, Senden/Antworten/Weiterleiten, Kennzeichnungen, Kategorien, Verschieben/Löschen, Posteingangsregeln

Kalender

Kalender, Ereignisansichten für Zeiträume, Ereignisse, Online-Besprechungen, Einladungen, Frei/Gebucht, Besprechungsvorschläge

To Do

Aufgabenlisten, Aufgaben, Serientermine, Erinnerungen, Abschluss, Checklistenelemente, verknüpfte Ressourcen

Kontakte

Kontaktordner und Kontakte, einschließlich gängiger persönlicher und geschäftlicher Felder

Outlook

Postfacheinstellungen, Arbeitszeiten, automatische Antworten und Master-Kategorien

Related MCP server: M365 Graph MCP Server

Anforderungen

  • Node.js 18 oder neuer

  • Eine Microsoft-Entra-App-Registrierung mit aktivierten öffentlichen Client-Flows

  • Die delegierten Microsoft-Graph-Berechtigungen, die für die von Ihnen verwendeten Module erforderlich sind

  • Ein Exchange-Online- oder Outlook.com-Postfach für Mail, Kalender, Kontakte und Postfacheinstellungen

  • Eine Microsoft-365- oder Office-365-Lizenz, die Teams für Teams-Chat- und Kanal-APIs enthält

calendar_get_schedule und calendar_find_meeting_times sind für Geschäfts- oder Schulkonten vorgesehen und werden für persönliche Microsoft-Konten nicht unterstützt.

Für ein persönliches Outlook.com-Konto registrieren Sie eine App, die persönliche Microsoft-Konten unterstützt, und setzen Sie MS_TENANT_ID auf common.

Befolgen Sie die auf Screenshots basierende Microsoft-Graph-API-Einrichtungsanleitung, um eine App zu registrieren, Berechtigungen hinzuzufügen und öffentliche Client-Flows zu aktivieren.

Delegierte Berechtigungen

Der Standard-Berechtigungssatz fordert die Berechtigungen an, die für jedes enthaltene Modul erforderlich sind:

Modul

Berechtigungen

Kern

User.Read, offline_access

Teams

Team.ReadBasic.All, Channel.ReadBasic.All, ChannelMessage.Read.All, ChannelMessage.Send, Chat.Read, ChatMessage.Send

Mail

Mail.ReadWrite, Mail.Send

Kalender

Calendars.ReadWrite, Calendars.ReadWrite.Shared

To Do

Tasks.ReadWrite

Kontakte

Contacts.ReadWrite

Outlook-Einstellungen, -Kategorien und -Regeln

MailboxSettings.ReadWrite

Einige Mandantenrichtlinien erfordern die Zustimmung des Administrators. Verwenden Sie MS_GRAPH_SCOPES, um einen kleineren Satz anzufordern, wenn nur ausgewählte Module benötigt werden.

Schnellstart

Konfigurieren Sie Ihren MCP-Client so, dass er das veröffentlichte Paket mit npx ausführt. Konfigurationswerte können direkt in den env-Block des MCP-Clients eingefügt werden; Shell-Umgebungsvariablen sind ansonsten nicht erforderlich.

{
  "mcpServers": {
    "ms-graph": {
      "command": "npx",
      "args": ["-y", "@developer.k/ms-graph-mcp"],
      "env": {
        "MS_CLIENT_ID": "your-entra-application-client-id",
        "MS_TENANT_ID": "organizations"
      }
    }
  }
}

Rufen Sie graph_auth_device_code auf, öffnen Sie die zurückgegebene Anmelde-URL, geben Sie den Gerätecode ein und rufen Sie dann graph_auth_status auf. Verwenden Sie force: true, nachdem Sie Berechtigungen hinzugefügt haben oder wenn ein alter Gerätecode-Flow abgelaufen ist.

Konfiguration

Erforderlich:

  • MS_CLIENT_ID: Microsoft-Entra-Anwendungs- (Client-) ID.

Optional:

  • MS_TENANT_ID: organizations, common oder eine Verzeichnis- (Mandanten-) ID. Standard: organizations.

  • MS_GRAPH_SCOPES: Durch Kommas oder Leerzeichen getrennte delegierte Bereiche, die den Standard-Berechtigungssatz ersetzen.

  • MS_GRAPH_TOKEN_CACHE_PATH: Lokaler MSAL-Token-Cache-Pfad.

  • MS_GRAPH_ACCOUNT_USERNAME: Zwischengespeichertes Konto, das ausgewählt werden soll, wenn mehr als ein Konto verfügbar ist.

Beispiel für einen lesefokussierten benutzerdefinierten Berechtigungssatz:

{
  "env": {
    "MS_CLIENT_ID": "your-entra-application-client-id",
    "MS_TENANT_ID": "organizations",
    "MS_GRAPH_SCOPES": "User.Read Mail.Read Calendars.Read Tasks.Read Contacts.Read MailboxSettings.Read offline_access"
  }
}

Tools

Graph:

graph_auth_device_code
graph_auth_status
graph_get_me

Teams:

teams_list_joined_teams
teams_list_channels
teams_list_channel_messages
teams_send_channel_message
teams_list_chats
teams_list_chat_messages
teams_list_chat_members
teams_find_self_chat
teams_send_chat_message
teams_send_self_message

Mail:

mail_list_folders
mail_list_messages
mail_get_message
mail_list_attachments
mail_get_attachment
mail_add_attachment
mail_create_draft
mail_update_draft
mail_create_reply_draft
mail_create_forward_draft
mail_send_draft
mail_send_message
mail_reply
mail_reply_all
mail_forward
mail_update_message
mail_move_message
mail_delete_message
mail_list_rules
mail_create_rule
mail_update_rule
mail_delete_rule

Kalender:

calendar_list_calendars
calendar_get_calendar
calendar_create_calendar
calendar_update_calendar
calendar_delete_calendar
calendar_list_events
calendar_get_event
calendar_create_event
calendar_update_event
calendar_delete_event
calendar_cancel_event
calendar_respond_event
calendar_get_schedule
calendar_find_meeting_times

Microsoft To Do:

todo_list_task_lists
todo_get_task_list
todo_create_task_list
todo_update_task_list
todo_delete_task_list
todo_list_tasks
todo_get_task
todo_create_task
todo_update_task
todo_complete_task
todo_delete_task
todo_list_checklist_items
todo_create_checklist_item
todo_update_checklist_item
todo_delete_checklist_item
todo_list_linked_resources
todo_create_linked_resource
todo_delete_linked_resource

Kontakte:

contacts_list_folders
contacts_get_folder
contacts_create_folder
contacts_update_folder
contacts_delete_folder
contacts_list
contacts_get
contacts_create
contacts_update
contacts_delete

Outlook-Einstellungen und -Kategorien:

outlook_get_mailbox_settings
outlook_update_mailbox_settings
outlook_set_automatic_replies
outlook_list_categories
outlook_get_category
outlook_create_category
outlook_update_category
outlook_delete_category

Beispiel-Prompts

Show the 10 most recent unread messages in my Inbox.
Find messages containing "quarterly report" and summarize their subjects and senders.
Create a draft reply to this message, but do not send it.
Create a draft email to user@example.com with the subject "Project update".
Send draft MESSAGE_ID after showing me its current recipients and subject.
Move message MESSAGE_ID to folder FOLDER_ID.
Show my calendar events for next week in Asia/Seoul.
Find a 30-minute time when all three attendees are available.
Create a Teams online meeting tomorrow at 2 PM.
Accept event EVENT_ID and send a response.
List my Microsoft To Do task lists.
Add a high-priority task due Friday with a reminder one day earlier.
Add three checklist items to task TASK_ID.
Mark task TASK_ID as completed.
Find the contact with email user@example.com.
Create a business contact in folder FOLDER_ID.
Schedule automatic replies from Monday morning through Friday evening.
Create an Outlook category named "Customer" using preset7.

Bevorzugen Sie Entwurfs-Tools vor Mail-Sende-Tools, damit die Empfänger und der Inhalt überprüft werden können. Senden, Antworten, Weiterleiten, Abbrechen, Verschieben und Löschen ändern echte Microsoft-365-Daten.

Lokale Entwicklung

Verwenden Sie diesen Abschnitt nur, wenn Sie von einem lokalen Klon aus arbeiten:

npm install
npm test
{
  "mcpServers": {
    "ms-graph": {
      "command": "node",
      "args": ["/path/to/ms-graph-mcp/build/index.js"],
      "env": {
        "MS_CLIENT_ID": "your-entra-application-client-id",
        "MS_TENANT_ID": "organizations"
      }
    }
  }
}

Projektstruktur

src/
|-- auth/
|   +-- msal.ts
|-- graph/
|   +-- client.ts
|-- modules/
|   |-- calendar.ts
|   |-- contacts.ts
|   |-- mail.ts
|   |-- outlook.ts
|   |-- shared.ts
|   |-- teams.ts
|   +-- todo.ts
|-- config.ts
|-- index.ts
|-- tools.ts
+-- types.ts

Aktuelle Grenzen

  • Tools arbeiten mit den /me-Ressourcen des angemeldeten Benutzers. Gemeinsame Postfächer und delegierte freigegebene Ordner sind noch nicht verfügbar.

  • Webhook-Abonnements sind nicht enthalten, da ein stdio-MCP-Server keinen dauerhaften öffentlichen Callback-Endpunkt hat.

  • Einfache Dateianhänge sind auf 3 MiB begrenzt. Größere Anhänge erfordern eine Microsoft-Graph-Upload-Sitzung.

  • Die Kontaktfilterung unterstützt die exakte Übereinstimmung von E-Mail-Adressen. Microsoft Graph bietet keine allgemeine Namenssuche in der Kontaktsammlung.

  • Ereignis- und Nachrichtentexte können externes HTML enthalten, das von Microsoft Graph bereitgestellt wird.

Dieses Paket enthält keine Anmeldeinformationen, Mandantenkennungen, Kontokennungen oder andere personalisierte Konfiguration.

Related MCP Connectors

Related MCP Servers