ms-graph-mcp
@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.
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 |
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 |
|
Teams |
|
| |
Kalender |
|
To Do |
|
Kontakte |
|
Outlook-Einstellungen, -Kategorien und -Regeln |
|
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,commonoder 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_meTeams:
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_messageMail:
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_ruleKalender:
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_timesMicrosoft 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_resourceKontakte:
contacts_list_folders
contacts_get_folder
contacts_create_folder
contacts_update_folder
contacts_delete_folder
contacts_list
contacts_get
contacts_create
contacts_update
contacts_deleteOutlook-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_categoryBeispiel-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.tsAktuelle 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.
This server cannot be installed
Maintenance
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
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Official Microsoft MCP Server to query Microsoft Entra data using natural language
A Model Context Protocol server for Wix AI tools
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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