# 0xka13b/microsoft-mcps architecture

> Architecture diagram of the GitHub repository 0xka13b/microsoft-mcps, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/0xka13b/microsoft-mcps
- Repository: https://github.com/0xka13b/microsoft-mcps

## Overview

Microsoft MCP provides five Microsoft 365 product servers whose tools expose Calendar, Contacts, OneDrive, Outlook, and SharePoint operations through MCP and Microsoft Graph. The principal flow is an MCP client invoking a product tool, the shared runtime authenticating and registering it, and the handler making a Graph request. Authentication also supports interactive sign-in and cached refresh tokens. The README documents stdio and Streamable HTTP; sampled runtime code shows their dispatch and registration. Some product tool implementations are only partially excerpted, so the graph omits uncertain internal call details.

Main entry points: [`packages/core/src/run.ts`](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/run.ts) (Run dispatcher), [`packages/graph/src/index.ts`](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/graph/src/index.ts) (Graph client), [`packages/auth/src/msal.ts`](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/auth/src/msal.ts) (MSAL sign-in), [`packages/core/src/transport.ts`](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/transport.ts) (MCP transports)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_products["M365 products"]
  node_calendar["Calendar tools<br/>[tools.ts]"]
  node_contacts["Contacts tools<br/>[tools.ts]"]
  node_onedrive["OneDrive tools<br/>[tools.ts]"]
  node_outlook["Outlook tools<br/>[tools.ts]"]
  node_sharepoint["SharePoint tools<br/>[tools.ts]"]
  node_calendar_entry["Calendar entry<br/>[index.ts]"]
  node_contacts_entry["Contacts entry<br/>[index.ts]"]
  node_onedrive_entry["OneDrive entry<br/>[index.ts]"]
  node_outlook_entry["Outlook entry<br/>[index.ts]"]
  node_sharepoint_entry["SharePoint entry<br/>[index.ts]"]
end

subgraph group_runtime["MCP runtime"]
  node_runner["Run dispatcher<br/>[run.ts]"]
  node_transport["MCP transports<br/>[transport.ts]"]
  node_registration["Tool registration<br/>[register.ts]"]
  node_tool_types["Tool definitions<br/>[types.ts]"]
end

subgraph group_identity["Authentication"]
  node_auth_config["Auth configuration<br/>[config.ts]"]
  node_msal["MSAL sign-in<br/>[msal.ts]"]
  node_token_cache[("Token cache<br/>[msal.ts]")]
end

subgraph group_shared["Shared services"]
  node_validation["Input validation<br/>[index.ts]"]
  node_graph_client["Graph client<br/>[index.ts]"]
  node_logger["Structured logger<br/>[index.ts]"]
end

node_client(("MCP client"))
node_microsoft_graph["Microsoft Graph"]
node_entra["Microsoft Entra ID"]

node_client -->|"uses transport"| node_transport
node_calendar_entry -->|"loads tools"| node_calendar
node_contacts_entry -->|"loads tools"| node_contacts
node_onedrive_entry -->|"loads tools"| node_onedrive
node_outlook_entry -->|"loads tools"| node_outlook
node_sharepoint_entry -->|"loads tools"| node_sharepoint
node_calendar_entry -->|"starts server"| node_runner
node_contacts_entry -->|"starts server"| node_runner
node_onedrive_entry -->|"starts server"| node_runner
node_outlook_entry -->|"starts server"| node_runner
node_sharepoint_entry -->|"starts server"| node_runner
node_runner -->|"selects transport"| node_transport
node_transport -->|"creates server"| node_registration
node_transport -->|"acquires token"| node_msal
node_runner -->|"starts login"| node_msal
node_msal -->|"uses config"| node_auth_config
node_msal -->|"reads and writes"| node_token_cache
node_registration -->|"creates client"| node_graph_client
node_calendar -->|"requests data"| node_graph_client
node_contacts -->|"requests data"| node_graph_client
node_onedrive -->|"requests data"| node_graph_client
node_outlook -->|"requests data"| node_graph_client
node_sharepoint -->|"requests data"| node_graph_client
node_calendar -->|"validates inputs"| node_validation
node_contacts -->|"validates inputs"| node_validation
node_onedrive -->|"validates inputs"| node_validation
node_outlook -->|"validates inputs"| node_validation
node_graph_client -->|"calls API"| node_microsoft_graph
node_msal -->|"authenticates with"| node_entra

click node_calendar "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/calendar/src/tools.ts"
click node_contacts "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/contacts/src/tools.ts"
click node_onedrive "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/onedrive/src/tools.ts"
click node_outlook "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/outlook/src/tools.ts"
click node_sharepoint "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/sharepoint/src/tools.ts"
click node_calendar_entry "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/calendar/src/index.ts"
click node_contacts_entry "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/contacts/src/index.ts"
click node_onedrive_entry "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/onedrive/src/index.ts"
click node_outlook_entry "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/outlook/src/index.ts"
click node_sharepoint_entry "https://github.com/0xka13b/microsoft-mcps/blob/master/apps/sharepoint/src/index.ts"
click node_runner "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/run.ts"
click node_transport "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/transport.ts"
click node_registration "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/register.ts"
click node_tool_types "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/types.ts"
click node_auth_config "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/auth/src/config.ts"
click node_msal "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/auth/src/msal.ts"
click node_token_cache "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/auth/src/msal.ts"
click node_validation "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/validation/src/index.ts"
click node_graph_client "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/graph/src/index.ts"
click node_logger "https://github.com/0xka13b/microsoft-mcps/blob/master/packages/logger/src/index.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_calendar,node_contacts,node_onedrive,node_outlook,node_sharepoint,node_calendar_entry,node_contacts_entry,node_onedrive_entry,node_outlook_entry,node_sharepoint_entry,node_client toneBlue
class node_runner,node_transport,node_registration,node_tool_types toneAmber
class node_auth_config,node_msal,node_token_cache toneMint
class node_validation,node_graph_client,node_logger toneRose
class node_microsoft_graph,node_entra toneIndigo
```

## Components

### M365 products

- [Calendar tools](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/calendar/src/tools.ts): `apps/calendar/src/tools.ts`
- [Contacts tools](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/contacts/src/tools.ts): `apps/contacts/src/tools.ts`
- [OneDrive tools](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/onedrive/src/tools.ts): `apps/onedrive/src/tools.ts`
- [Outlook tools](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/outlook/src/tools.ts): `apps/outlook/src/tools.ts`
- [SharePoint tools](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/sharepoint/src/tools.ts): `apps/sharepoint/src/tools.ts`
- [Calendar entry](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/calendar/src/index.ts): `apps/calendar/src/index.ts`
- [Contacts entry](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/contacts/src/index.ts): `apps/contacts/src/index.ts`
- [OneDrive entry](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/onedrive/src/index.ts): `apps/onedrive/src/index.ts`
- [Outlook entry](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/outlook/src/index.ts): `apps/outlook/src/index.ts`
- [SharePoint entry](https://github.com/0xka13b/microsoft-mcps/blob/master/apps/sharepoint/src/index.ts): `apps/sharepoint/src/index.ts`

### MCP runtime

- [Run dispatcher](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/run.ts): `packages/core/src/run.ts`
- [MCP transports](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/transport.ts): `packages/core/src/transport.ts`
- [Tool registration](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/register.ts): `packages/core/src/register.ts`
- [Tool definitions](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/core/src/types.ts): `packages/core/src/types.ts`

### Authentication

- [Auth configuration](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/auth/src/config.ts): `packages/auth/src/config.ts`
- [MSAL sign-in](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/auth/src/msal.ts): `packages/auth/src/msal.ts`
- [Token cache](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/auth/src/msal.ts): `packages/auth/src/msal.ts`

### Shared services

- [Input validation](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/validation/src/index.ts): `packages/validation/src/index.ts`
- [Graph client](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/graph/src/index.ts): `packages/graph/src/index.ts`
- [Structured logger](https://github.com/0xka13b/microsoft-mcps/blob/master/packages/logger/src/index.ts): `packages/logger/src/index.ts`

### Other components

- **MCP client**
- **Microsoft Graph**
- **Microsoft Entra ID**

## Connections

- MCP client → MCP transports: uses transport (evidence: `README.md`)
- Calendar entry → Calendar tools: loads tools (evidence: `apps/calendar/src/index.ts`)
- Contacts entry → Contacts tools: loads tools (evidence: `apps/contacts/src/index.ts`)
- OneDrive entry → OneDrive tools: loads tools (evidence: `apps/onedrive/src/index.ts`)
- Outlook entry → Outlook tools: loads tools (evidence: `apps/outlook/src/index.ts`)
- SharePoint entry → SharePoint tools: loads tools (evidence: `apps/sharepoint/src/index.ts`)
- Calendar entry → Run dispatcher: starts server (evidence: `apps/calendar/src/index.ts`)
- Contacts entry → Run dispatcher: starts server (evidence: `apps/contacts/src/index.ts`)
- OneDrive entry → Run dispatcher: starts server (evidence: `apps/onedrive/src/index.ts`)
- Outlook entry → Run dispatcher: starts server (evidence: `apps/outlook/src/index.ts`)
- SharePoint entry → Run dispatcher: starts server (evidence: `apps/sharepoint/src/index.ts`)
- Run dispatcher → MCP transports: selects transport (evidence: `packages/core/src/run.ts`)
- MCP transports → Tool registration: creates server (evidence: `packages/core/src/transport.ts`)
- MCP transports → MSAL sign-in: acquires token (evidence: `packages/core/src/transport.ts`)
- Run dispatcher → MSAL sign-in: starts login (evidence: `packages/core/src/run.ts`)
- MSAL sign-in → Auth configuration: uses config (evidence: `packages/auth/src/msal.ts`)
- MSAL sign-in → Token cache: reads and writes (evidence: `packages/auth/src/msal.ts`)
- Tool registration → Graph client: creates client (evidence: `packages/core/src/register.ts`)
- Calendar tools → Graph client: requests data (evidence: `apps/calendar/src/tools.ts`)
- Contacts tools → Graph client: requests data (evidence: `apps/contacts/src/tools.ts`)
- OneDrive tools → Graph client: requests data (evidence: `apps/onedrive/src/tools.ts`)
- Outlook tools → Graph client: requests data (evidence: `apps/outlook/src/tools.ts`)
- SharePoint tools → Graph client: requests data (evidence: `apps/sharepoint/src/tools.ts`)
- Calendar tools → Input validation: validates inputs (evidence: `apps/calendar/src/tools.ts`)
- Contacts tools → Input validation: validates inputs (evidence: `apps/contacts/src/tools.ts`)
- OneDrive tools → Input validation: validates inputs (evidence: `apps/onedrive/src/tools.ts`)
- Outlook tools → Input validation: validates inputs (evidence: `apps/outlook/src/tools.ts`)
- Graph client → Microsoft Graph: calls API (evidence: `README.md`)
- MSAL sign-in → Microsoft Entra ID: authenticates with (evidence: `README.md`)
