Microsoft 365 MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SILENT | No | Set to 'true' or '1' to disable console output. | false |
| LOG_LEVEL | No | Set logging level (default: 'info'). | info |
| READ_ONLY | No | Set to 'true' or '1' to start server in read-only mode, disabling write operations. | false |
| ENABLED_TOOLS | No | Regex pattern to filter tools (alternative to --enabled-tools flag). | |
| MS365_MCP_MAX_TOP | No | Hard cap for Graph $top / top on list requests (positive integer). | |
| MS365_MCP_ORG_MODE | No | Set to 'true' or '1' to enable organization/work mode from start (includes Teams, SharePoint, etc.). | false |
| MS365_MCP_CLIENT_ID | No | Custom Azure app client ID (defaults to built-in app). | |
| MS365_MCP_MAX_ITEMS | No | Maximum number of items accumulated when fetchAllPages is true (positive integer, default 10000). | 10000 |
| MS365_MCP_MAX_PAGES | No | Maximum number of pages followed when fetchAllPages is true (positive integer, default 100). | 100 |
| MS365_MCP_TENANT_ID | No | Custom tenant ID (defaults to 'common' for multi-tenant). Personal accounts should set to 'consumers'. | common |
| MS365_MCP_CLOUD_TYPE | No | Microsoft cloud environment: 'global' or 'china' (21Vianet). | global |
| MS365_MCP_REDACT_PII | No | Set to 'true' or '1' to scrub PII from log messages. | false |
| MS365_MCP_BODY_FORMAT | No | Set to 'html' to return email bodies as HTML instead of plain text. | text |
| MS365_MCP_OAUTH_TOKEN | No | Pre-existing OAuth token for Microsoft Graph API (BYOT method). | |
| MS365_MCP_EXTRA_SCOPES | No | Append additional Graph scopes to the token request. | |
| MS365_MCP_KEYVAULT_URL | No | Azure Key Vault URL for secrets management. | |
| MS365_MCP_CLIENT_SECRET | No | Azure app client secret (optional for public apps). | |
| MS365_MCP_OUTPUT_FORMAT | No | Set to 'toon' to enable experimental TOON output format for token reduction. | json |
| MS365_MCP_ALLOWED_SCOPES | No | Limit exposed tools to Graph scopes covered by this allowlist. | |
| MS365_MCP_ALLOW_PAGINATION | No | Set to '0', 'false', or 'no' to disable multi-page following entirely. | true |
| MS365_MCP_TOKEN_CACHE_PATH | No | Custom file path for MSAL token cache. | |
| MS365_MCP_TRUST_PROXY_HOPS | No | Number of trusted reverse-proxy hops in HTTP mode (default 1). | 1 |
| MS365_MCP_EXPECTED_USERNAME | No | Require local MSAL auth to use this Microsoft account username (case-insensitive). | |
| MS365_MCP_FORCE_WORK_SCOPES | No | Backwards compatibility alias for MS365_MCP_ORG_MODE (deprecated). | false |
| MS365_MCP_AUTH_CACHE_COMMAND | No | External executable wrapper for provider-neutral auth-cache storage. | |
| MS365_MCP_RATE_LIMIT_DISABLED | No | Set to 'true' or '1' to disable per-IP rate limiting in HTTP mode. | false |
| MS365_MCP_SELECTED_ACCOUNT_PATH | No | Custom file path for selected account metadata. | |
| MS365_MCP_EXPECTED_HOME_ACCOUNT_ID | No | Require local MSAL auth to use this exact MSAL homeAccountId. | |
| MS365_MCP_AUTH_CACHE_COMMAND_TIMEOUT_MS | No | Per-invocation timeout for MS365_MCP_AUTH_CACHE_COMMAND (default: 10000). | 10000 |
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
No tools | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/IDEAtells-B-V-Software/hermes-ms365-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server