Skip to main content
Glama
2025-12-17_1515_msgraph-mcp-architecture.d23.09 kB
direction: right title: Microsoft Graph MCP Server Architecture { near: top-center shape: text style.font-size: 24 style.bold: true } # Client Layer claude: Claude Code { shape: rectangle style.fill: "#4A90E2" style.stroke: "#2E5C8A" style.font-color: white } # MCP Server Layer mcp_server: msgraph-mcp Server { shape: rectangle style.fill: "#50C878" style.stroke: "#2E7D4E" style.font-color: white components: { server: server.py { shape: document style.fill: "#E8F5E9" } api: api.py { shape: document style.fill: "#E8F5E9" } client: graph_client.py { shape: document style.fill: "#E8F5E9" } sandbox: sandbox.py { shape: document style.fill: "#E8F5E9" } } } # Authentication Layer azure_ad: Azure AD { shape: cloud style.fill: "#0078D4" style.stroke: "#005A9E" style.font-color: white auth: { app: App Registration { shape: rectangle style.fill: "#CCE5FF" } msal: MSAL Auth { shape: rectangle style.fill: "#CCE5FF" } token: Token Cache { shape: cylinder style.fill: "#CCE5FF" } } } # Microsoft Graph API graph_api: Microsoft Graph API { shape: hexagon style.fill: "#7B68EE" style.stroke: "#5A4EBE" style.font-color: white } # M365 Services Layer m365_services: Microsoft 365 Services { shape: rectangle style.fill: "#FF6B6B" style.stroke: "#CC5555" style.font-color: white services: { sharepoint: SharePoint { shape: cylinder style.fill: "#FFE5E5" } onedrive: OneDrive { shape: cylinder style.fill: "#FFE5E5" } outlook: Outlook { shape: cylinder style.fill: "#FFE5E5" } teams: Teams { shape: cylinder style.fill: "#FFE5E5" } calendar: Calendar { shape: cylinder style.fill: "#FFE5E5" } } } # Connections claude -> mcp_server: MCP Protocol\n(stdio) mcp_server -> azure_ad: 1. Authenticate\n(Client Credentials) azure_ad -> mcp_server: 2. Access Token mcp_server -> graph_api: 3. API Requests\n(Bearer Token) graph_api -> m365_services: 4. Read Data m365_services -> graph_api: 5. Response graph_api -> mcp_server: 6. JSON Response mcp_server -> claude: 7. Formatted Results # Permissions Box permissions: API Permissions { shape: rectangle style.fill: "#FFF3CD" style.stroke: "#FFC107" list: { shape: text label: |md - Sites.Read.All - Files.Read.All - Mail.Read - ChannelMessage.Read.All - Chat.Read.All - Calendars.Read - User.Read.All - Group.Read.All | } } permissions -> azure_ad: Admin Consent { style.stroke-dash: 3 } # Security Note security: Security Features { shape: rectangle style.fill: "#D4EDDA" style.stroke: "#28A745" features: { shape: text label: |md - Read-only access - Sandboxed execution - Token auto-refresh - App-only authentication - No user credentials stored | } } security -> mcp_server: { style.stroke-dash: 3 }

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/eesb99/msgraph-mcp'

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