NestDaddy

Microsoft365 Mcp Server

io.github.sapientsai/microsoft365-mcp-server ยท v1.3.1

Microsoft 365 via Graph โ€” mail, calendar, contacts, files, Teams, Planner, OneNote, To Do.

Connect Runs on your machine

Terminal
claude mcp add microsoft365-mcp-server -e MS365_CLIENT_ID=<MS365_CLIENT_ID> -e MS365_TENANT_ID=<MS365_TENANT_ID> -e MS365_CLIENT_SECRET=<MS365_CLIENT_SECRET> -e MS365_CERT_PATH=<MS365_CERT_PATH> -e MS365_CERT_PASSWORD=<MS365_CERT_PASSWORD> -e MS365_ACCESS_TOKEN=<MS365_ACCESS_TOKEN> -e MS365_AUTH_MODE=<MS365_AUTH_MODE> -e MS365_OAUTH_BASE_URL=<MS365_OAUTH_BASE_URL> -e MS365_READ_ONLY=<MS365_READ_ONLY> -e MS365_ENABLED_TOOLS=<MS365_ENABLED_TOOLS> -e MS365_PRESETS=<MS365_PRESETS> -e MS365_ORG_MODE=<MS365_ORG_MODE> -e TRANSPORT_TYPE=<TRANSPORT_TYPE> -- npx -y [email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "microsoft365-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "MS365_CLIENT_ID": "<MS365_CLIENT_ID>",
        "MS365_TENANT_ID": "<MS365_TENANT_ID>",
        "MS365_CLIENT_SECRET": "<MS365_CLIENT_SECRET>",
        "MS365_CERT_PATH": "<MS365_CERT_PATH>",
        "MS365_CERT_PASSWORD": "<MS365_CERT_PASSWORD>",
        "MS365_ACCESS_TOKEN": "<MS365_ACCESS_TOKEN>",
        "MS365_AUTH_MODE": "<MS365_AUTH_MODE>",
        "MS365_OAUTH_BASE_URL": "<MS365_OAUTH_BASE_URL>",
        "MS365_READ_ONLY": "<MS365_READ_ONLY>",
        "MS365_ENABLED_TOOLS": "<MS365_ENABLED_TOOLS>",
        "MS365_PRESETS": "<MS365_PRESETS>",
        "MS365_ORG_MODE": "<MS365_ORG_MODE>",
        "TRANSPORT_TYPE": "<TRANSPORT_TYPE>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "microsoft365-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "MS365_CLIENT_ID": "<MS365_CLIENT_ID>",
        "MS365_TENANT_ID": "<MS365_TENANT_ID>",
        "MS365_CLIENT_SECRET": "<MS365_CLIENT_SECRET>",
        "MS365_CERT_PATH": "<MS365_CERT_PATH>",
        "MS365_CERT_PASSWORD": "<MS365_CERT_PASSWORD>",
        "MS365_ACCESS_TOKEN": "<MS365_ACCESS_TOKEN>",
        "MS365_AUTH_MODE": "<MS365_AUTH_MODE>",
        "MS365_OAUTH_BASE_URL": "<MS365_OAUTH_BASE_URL>",
        "MS365_READ_ONLY": "<MS365_READ_ONLY>",
        "MS365_ENABLED_TOOLS": "<MS365_ENABLED_TOOLS>",
        "MS365_PRESETS": "<MS365_PRESETS>",
        "MS365_ORG_MODE": "<MS365_ORG_MODE>",
        "TRANSPORT_TYPE": "<TRANSPORT_TYPE>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "microsoft365-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "MS365_CLIENT_ID": "<MS365_CLIENT_ID>",
        "MS365_TENANT_ID": "<MS365_TENANT_ID>",
        "MS365_CLIENT_SECRET": "<MS365_CLIENT_SECRET>",
        "MS365_CERT_PATH": "<MS365_CERT_PATH>",
        "MS365_CERT_PASSWORD": "<MS365_CERT_PASSWORD>",
        "MS365_ACCESS_TOKEN": "<MS365_ACCESS_TOKEN>",
        "MS365_AUTH_MODE": "<MS365_AUTH_MODE>",
        "MS365_OAUTH_BASE_URL": "<MS365_OAUTH_BASE_URL>",
        "MS365_READ_ONLY": "<MS365_READ_ONLY>",
        "MS365_ENABLED_TOOLS": "<MS365_ENABLED_TOOLS>",
        "MS365_PRESETS": "<MS365_PRESETS>",
        "MS365_ORG_MODE": "<MS365_ORG_MODE>",
        "TRANSPORT_TYPE": "<TRANSPORT_TYPE>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
MS365_CLIENT_ID
Required
Azure AD application (client) ID. Every mode except client-token needs it.
MS365_TENANT_ID
Optional
Azure AD tenant ID, or 'common'/'organizations'/'consumers'. Read by certificate, client-secret and oauth-proxy modes.
MS365_CLIENT_SECRET
Optional, secret
Azure AD client secret (client-secret mode).
MS365_CERT_PATH
Optional
Path to the certificate used by certificate mode.
MS365_CERT_PASSWORD
Optional, secret
Password for the certificate at MS365_CERT_PATH, if it has one.
MS365_ACCESS_TOKEN
Optional, secret
A Graph access token supplied directly (client-token mode).
MS365_AUTH_MODE
Optional
Auth mode: interactive (default), certificate, client-secret, client-token or oauth-proxy.
MS365_OAUTH_BASE_URL
Optional
Base URL of the OAuth proxy (oauth-proxy mode).
MS365_READ_ONLY
Optional
Set to 'true' to expose read-only tools and refuse every write.
MS365_ENABLED_TOOLS
Optional
Case-insensitive regular expression matched against tool names; only matching tools are registered. Not a comma-separated list.
MS365_PRESETS
Optional
Comma-separated tool presets to enable instead of naming tools individually.
MS365_ORG_MODE
Optional
Set to 'true' for organisation-wide (application-permission) behaviour.
TRANSPORT_TYPE
Optional
Transport: 'stdio' (the default, and what this npm package is listed as) or 'httpStream' for remote/Docker deployments.

Details

Package[email protected] (NPM, stdio)
First published8 Nov 2026
Last updated8 Nov 2026
Registry nameio.github.sapientsai/microsoft365-mcp-server

More communication servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.