How 0xka13b/microsoft-mcps works
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: run.ts Run dispatcher · index.ts Graph client · msal.ts MSAL sign-in · transport.ts MCP transports
Components 23
M365 products
- Calendar tools
apps/calendar/src/tools.ts - Contacts tools
apps/contacts/src/tools.ts - OneDrive tools
apps/onedrive/src/tools.ts - Outlook tools
apps/outlook/src/tools.ts - SharePoint tools
apps/sharepoint/src/tools.ts - Calendar entry
apps/calendar/src/index.ts - Contacts entry
apps/contacts/src/index.ts - OneDrive entry
apps/onedrive/src/index.ts - Outlook entry
apps/outlook/src/index.ts - SharePoint entry
apps/sharepoint/src/index.ts
MCP runtime
- Run dispatcher
packages/core/src/run.ts - MCP transports
packages/core/src/transport.ts - Tool registration
packages/core/src/register.ts - Tool definitions
packages/core/src/types.ts
Authentication
- Auth configuration
packages/auth/src/config.ts - MSAL sign-in
packages/auth/src/msal.ts - Token cache
packages/auth/src/msal.ts
Shared services
- Input validation
packages/validation/src/index.ts - Graph client
packages/graph/src/index.ts - Structured logger
packages/logger/src/index.ts
Other components
- MCP client
- Microsoft Graph
- Microsoft Entra ID
Connections 29
- MCP client → MCP transports: uses transport
README.md - Calendar entry → Calendar tools: loads tools
apps/calendar/src/index.ts - Contacts entry → Contacts tools: loads tools
apps/contacts/src/index.ts - OneDrive entry → OneDrive tools: loads tools
apps/onedrive/src/index.ts - Outlook entry → Outlook tools: loads tools
apps/outlook/src/index.ts - SharePoint entry → SharePoint tools: loads tools
apps/sharepoint/src/index.ts - Calendar entry → Run dispatcher: starts server
apps/calendar/src/index.ts - Contacts entry → Run dispatcher: starts server
apps/contacts/src/index.ts - OneDrive entry → Run dispatcher: starts server
apps/onedrive/src/index.ts - Outlook entry → Run dispatcher: starts server
apps/outlook/src/index.ts - SharePoint entry → Run dispatcher: starts server
apps/sharepoint/src/index.ts - Run dispatcher → MCP transports: selects transport
packages/core/src/run.ts - MCP transports → Tool registration: creates server
packages/core/src/transport.ts - MCP transports → MSAL sign-in: acquires token
packages/core/src/transport.ts - Run dispatcher → MSAL sign-in: starts login
packages/core/src/run.ts - MSAL sign-in → Auth configuration: uses config
packages/auth/src/msal.ts - MSAL sign-in → Token cache: reads and writes
packages/auth/src/msal.ts - Tool registration → Graph client: creates client
packages/core/src/register.ts - Calendar tools → Graph client: requests data
apps/calendar/src/tools.ts - Contacts tools → Graph client: requests data
apps/contacts/src/tools.ts - OneDrive tools → Graph client: requests data
apps/onedrive/src/tools.ts - Outlook tools → Graph client: requests data
apps/outlook/src/tools.ts - SharePoint tools → Graph client: requests data
apps/sharepoint/src/tools.ts - Calendar tools → Input validation: validates inputs
apps/calendar/src/tools.ts - Contacts tools → Input validation: validates inputs
apps/contacts/src/tools.ts - OneDrive tools → Input validation: validates inputs
apps/onedrive/src/tools.ts - Outlook tools → Input validation: validates inputs
apps/outlook/src/tools.ts - Graph client → Microsoft Graph: calls API
README.md - MSAL sign-in → Microsoft Entra ID: authenticates with
README.md