microsoft365-mcp-server
A community-built MCP server that provides over 40 tools to interact with Microsoft 365 services via the Microsoft Graph API. It supports delegated OAuth authentication for user-consented access to mail, calendar, contacts, files, Teams, Planner, OneNote, and To Do.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
Checks and signals
Each line is separate evidence, not a trust score.
- Popularity 1 GitHub star
What you can do with it
- Manage email and calendar events
- Access and organize files in OneDrive and SharePoint
- Collaborate on Teams channels and chats
- Track tasks in Planner and To Do
Source and maintenance
- Last repository push
- Latest release
- v1.2.22
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
microsoft365-mcp-server 1.2.22
{
"version": "1.2.22",
"transport": "stdio",
"identifier": "microsoft365-mcp-server",
"registryType": "npm",
"environmentVariables": [
{
"name": "MS365_CLIENT_ID",
"format": "string",
"isRequired": true,
"description": "Azure AD application (client) ID. Every mode except client-token needs it."
},
{
"name": "MS365_TENANT_ID",
"format": "string",
"description": "Azure AD tenant ID, or 'common'/'organizations'/'consumers'. Read by certificate, client-secret and oauth-proxy modes."
},
{
"name": "MS365_CLIENT_SECRET",
"format": "string",
"description": "Azure AD client secret (client-secret mode)."
},
{
"name": "MS365_CERT_PATH",
"format": "filepath",
"description": "Path to the certificate used by certificate mode."
},
{
"name": "MS365_CERT_PASSWORD",
"format": "string",
"description": "Password for the certificate at MS365_CERT_PATH, if it has one."
},
{
"name": "MS365_ACCESS_TOKEN",
"format": "string",
"description": "A Graph access token supplied directly (client-token mode)."
},
{
"name": "MS365_AUTH_MODE",
"format": "string",
"description": "Auth mode: interactive (default), certificate, client-secret, client-token or oauth-proxy."
},
{
"name": "MS365_OAUTH_BASE_URL",
"format": "string",
"description": "Base URL of the OAuth proxy (oauth-proxy mode)."
},
{
"name": "MS365_READ_ONLY",
"format": "string",
"description": "Set to 'true' to expose read-only tools and refuse every write."
},
{
"name": "MS365_ENABLED_TOOLS",
"format": "string",
"description": "Case-insensitive regular expression matched against tool names; only matching tools are registered. Not a comma-separated list."
},
{
"name": "MS365_PRESETS",
"format": "string",
"description": "Comma-separated tool presets to enable instead of naming tools individually."
},
{
"name": "MS365_ORG_MODE",
"format": "string",
"description": "Set to 'true' for organisation-wide (application-permission) behaviour."
},
{
"name": "TRANSPORT_TYPE",
"format": "string",
"description": "Transport: 'stdio' (the default, and what this npm package is listed as) or 'httpStream' for remote/Docker deployments."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · repository · passed · metadata changed · updated
- · backfill · recorded · Pre-expansion baseline; unobserved rich metadata remains unknown
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"microsoft365-mcp-server": {
"command": "npx",
"args": [
"-y",
"microsoft365-mcp-server@1.2.22"
],
"env": {
"MS365_CLIENT_ID": "<YOUR_MS365_CLIENT_ID>",
"MS365_TENANT_ID": "<YOUR_MS365_TENANT_ID>",
"MS365_CLIENT_SECRET": "<YOUR_MS365_CLIENT_SECRET>",
"MS365_CERT_PATH": "<YOUR_MS365_CERT_PATH>",
"MS365_CERT_PASSWORD": "<YOUR_MS365_CERT_PASSWORD>",
"MS365_ACCESS_TOKEN": "<YOUR_MS365_ACCESS_TOKEN>",
"MS365_AUTH_MODE": "<YOUR_MS365_AUTH_MODE>",
"MS365_OAUTH_BASE_URL": "<YOUR_MS365_OAUTH_BASE_URL>",
"MS365_READ_ONLY": "<YOUR_MS365_READ_ONLY>",
"MS365_ENABLED_TOOLS": "<YOUR_MS365_ENABLED_TOOLS>",
"MS365_PRESETS": "<YOUR_MS365_PRESETS>",
"MS365_ORG_MODE": "<YOUR_MS365_ORG_MODE>",
"TRANSPORT_TYPE": "<YOUR_TRANSPORT_TYPE>"
}
}
}
}Cline
{
"mcpServers": {
"microsoft365-mcp-server": {
"command": "npx",
"args": [
"-y",
"microsoft365-mcp-server@1.2.22"
],
"env": {
"MS365_CLIENT_ID": "<YOUR_MS365_CLIENT_ID>",
"MS365_TENANT_ID": "<YOUR_MS365_TENANT_ID>",
"MS365_CLIENT_SECRET": "<YOUR_MS365_CLIENT_SECRET>",
"MS365_CERT_PATH": "<YOUR_MS365_CERT_PATH>",
"MS365_CERT_PASSWORD": "<YOUR_MS365_CERT_PASSWORD>",
"MS365_ACCESS_TOKEN": "<YOUR_MS365_ACCESS_TOKEN>",
"MS365_AUTH_MODE": "<YOUR_MS365_AUTH_MODE>",
"MS365_OAUTH_BASE_URL": "<YOUR_MS365_OAUTH_BASE_URL>",
"MS365_READ_ONLY": "<YOUR_MS365_READ_ONLY>",
"MS365_ENABLED_TOOLS": "<YOUR_MS365_ENABLED_TOOLS>",
"MS365_PRESETS": "<YOUR_MS365_PRESETS>",
"MS365_ORG_MODE": "<YOUR_MS365_ORG_MODE>",
"TRANSPORT_TYPE": "<YOUR_TRANSPORT_TYPE>"
}
}
}
}VS Code
{
"servers": {
"microsoft365-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"microsoft365-mcp-server@1.2.22"
],
"env": {
"MS365_CLIENT_ID": "<YOUR_MS365_CLIENT_ID>",
"MS365_TENANT_ID": "<YOUR_MS365_TENANT_ID>",
"MS365_CLIENT_SECRET": "<YOUR_MS365_CLIENT_SECRET>",
"MS365_CERT_PATH": "<YOUR_MS365_CERT_PATH>",
"MS365_CERT_PASSWORD": "<YOUR_MS365_CERT_PASSWORD>",
"MS365_ACCESS_TOKEN": "<YOUR_MS365_ACCESS_TOKEN>",
"MS365_AUTH_MODE": "<YOUR_MS365_AUTH_MODE>",
"MS365_OAUTH_BASE_URL": "<YOUR_MS365_OAUTH_BASE_URL>",
"MS365_READ_ONLY": "<YOUR_MS365_READ_ONLY>",
"MS365_ENABLED_TOOLS": "<YOUR_MS365_ENABLED_TOOLS>",
"MS365_PRESETS": "<YOUR_MS365_PRESETS>",
"MS365_ORG_MODE": "<YOUR_MS365_ORG_MODE>",
"TRANSPORT_TYPE": "<YOUR_TRANSPORT_TYPE>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"microsoft365-mcp-server": {
"command": "npx",
"args": [
"-y",
"microsoft365-mcp-server@1.2.22"
],
"env": {
"MS365_CLIENT_ID": "<YOUR_MS365_CLIENT_ID>",
"MS365_TENANT_ID": "<YOUR_MS365_TENANT_ID>",
"MS365_CLIENT_SECRET": "<YOUR_MS365_CLIENT_SECRET>",
"MS365_CERT_PATH": "<YOUR_MS365_CERT_PATH>",
"MS365_CERT_PASSWORD": "<YOUR_MS365_CERT_PASSWORD>",
"MS365_ACCESS_TOKEN": "<YOUR_MS365_ACCESS_TOKEN>",
"MS365_AUTH_MODE": "<YOUR_MS365_AUTH_MODE>",
"MS365_OAUTH_BASE_URL": "<YOUR_MS365_OAUTH_BASE_URL>",
"MS365_READ_ONLY": "<YOUR_MS365_READ_ONLY>",
"MS365_ENABLED_TOOLS": "<YOUR_MS365_ENABLED_TOOLS>",
"MS365_PRESETS": "<YOUR_MS365_PRESETS>",
"MS365_ORG_MODE": "<YOUR_MS365_ORG_MODE>",
"TRANSPORT_TYPE": "<YOUR_TRANSPORT_TYPE>"
}
}
}
}Let your agent find its tools
Find servers like microsoft365-mcp-server from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.