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

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.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/CodyBuilder-dev/ms-graph-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server