Microsoft 365 MCP Server
by J7suite
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SILENT | No | true|1 disables console output. | |
| LOG_LEVEL | No | Set logging level. Default: info. | |
| READ_ONLY | No | true|1 starts the server in read-only mode, disabling write operations. | |
| ENABLED_TOOLS | No | Filter tools using a regex pattern. | |
| MS365_MCP_MAX_TOP | No | Hard cap for Graph $top/top on list requests. Passed values are clamped to this positive integer. | |
| ENABLED_TOOLS_FILE | No | Path to a file with one regex per line for tool filtering. | |
| MS365_MCP_APP_MODE | No | true|1 enables app mode using application permissions and no signed-in user. | |
| MS365_MCP_ORG_MODE | No | true|1 enables organization/work mode from start. | |
| MS365_MCP_CLIENT_ID | No | Custom Azure app client ID. Defaults to the built-in app. | |
| MS365_MCP_MAX_ITEMS | No | Maximum number of items accumulated when fetchAllPages is true. Default: 10000. | |
| MS365_MCP_MAX_PAGES | No | Maximum number of pages followed when fetchAllPages is true. Default: 100. | |
| MS365_MCP_TENANT_ID | No | Custom tenant ID. Defaults to 'common'. Personal Microsoft accounts should set this to 'consumers'. | |
| MS365_MCP_CLOUD_TYPE | No | Microsoft cloud environment: global, china, or gcc-high. | |
| MS365_MCP_REDACT_PII | No | Set to false|0 to disable scrubbing of JWTs, Bearer headers, OAuth token fields, and email addresses from logs. | |
| MS365_MCP_USE_KEYTAR | No | Set to 0, false, no, or off to skip the OS credential store and use a local .cache-key file. | |
| MS365_MCP_BLOB_OUTPUT | No | true|1 makes file download tools return an MCP EmbeddedResource with BlobResourceContents instead of base64 JSON in text. | |
| MS365_MCP_BODY_FORMAT | No | Set to html to return email bodies as HTML instead of plain text. | |
| MS365_MCP_DISABLE_DCR | No | true|1 disables OAuth Dynamic Client Registration in HTTP mode. | |
| MS365_MCP_EAGER_TOOLS | No | Comma-separated exact tool names to expose directly when using --discovery. | |
| MS365_MCP_OAUTH_TOKEN | No | Pre-existing OAuth token for Microsoft Graph API, enabling Bring Your Own Token authentication. | |
| MS365_MCP_UPLOAD_DIRS | No | Absolute directories upload-attachment-from-file may read from, separated like PATH. | |
| MS365_MCP_USER_FIELDS | No | Comma-separated user profile field filter for covered /users reads and matching batch subrequests. | |
| MS365_MCP_EXTRA_SCOPES | No | Append additional Graph scopes to the token request, for use with your own app registration and graph-batch. | |
| MS365_MCP_KEYVAULT_URL | No | Azure Key Vault URL for secrets management. | |
| MS365_MCP_CLIENT_SECRET | No | Custom Azure app client secret. Optional for public apps and used with custom app registrations or app mode. | |
| MS365_MCP_OUTPUT_FORMAT | No | Set to toon to enable experimental TOON output format for token reduction. | |
| MS365_MCP_ALLOWED_SCOPES | No | Limit exposed tools to Graph scopes covered by this allowlist. | |
| MS365_MCP_BLOB_MAX_BYTES | No | Largest file a download tool reads with blob output enabled. Default: 5242880. | |
| MS365_MCP_GRAPH_BASE_URL | No | Send Graph API requests to this base URL instead of the cloud's graph.microsoft.com endpoint. | |
| MS365_MCP_ATTACHMENT_HOST | No | Interface the attachment listener binds. Requires --attachment-port. | |
| MS365_MCP_ATTACHMENT_PORT | No | Serve the attachment route on its own listener on this port. Requires --enable-attachment-urls. | |
| MS365_MCP_ALLOW_PAGINATION | No | Set to 0, false, or no to disable multi-page following entirely. | |
| MS365_MCP_MANAGED_IDENTITY | No | Use the host's managed identity in app mode: 'system' or a user-assigned identity client ID. | |
| MS365_MCP_TOKEN_CACHE_PATH | No | Custom file path for the MSAL token cache. | |
| MS365_MCP_TRUST_PROXY_HOPS | No | Number of trusted reverse-proxy hops in HTTP mode. Default: 1. | |
| MS365_MCP_EXPECTED_USERNAME | No | Require local MSAL auth to use this Microsoft account username. Comparison is case-insensitive. | |
| MS365_MCP_FORCE_WORK_SCOPES | No | Backwards compatibility option for MS365_MCP_ORG_MODE. | |
| MS365_MCP_OBO_ALLOWED_USERS | No | With --obo, only callers whose token user object id is listed may use the server. Comma or space separated. | |
| MS365_MCP_ATTACHMENT_URL_KEY | No | Optional signing key for server-minted attachment URLs. | |
| MS365_MCP_AUTH_CACHE_COMMAND | No | External executable wrapper for provider-neutral auth-cache storage. | |
| MS365_MCP_ATTACHMENT_URL_BASE | No | Required base URL used to mint server-served attachment URLs when --enable-attachment-urls is active. | |
| MS365_MCP_OBO_ALLOWED_TENANTS | No | With --obo, only callers whose token tenant id is listed may use the server. Comma or space separated. | |
| MS365_MCP_RATE_LIMIT_DISABLED | No | true|1 disables per-IP rate limiting in HTTP mode. | |
| MS365_MCP_ATTACHMENT_URL_TTL_S | No | Lifetime of attachment URL tickets in seconds. Default: 120, maximum: 300. | |
| MS365_MCP_FEDERATED_TOKEN_FILE | No | Federated token file for workload identity federation, used instead of a secret or certificate in app mode. | |
| MS365_MCP_ATTACHMENT_URL_KEY_ID | No | Optional key ID for attachment URL signatures. Default: 1. | |
| MS365_MCP_HTTP_LOCAL_FILE_TOOLS | No | true|1 registers local file tools over HTTP, subject to loopback and safety restrictions. | |
| MS365_MCP_SELECTED_ACCOUNT_PATH | No | Custom file path for selected account metadata. | |
| MS365_MCP_MESSAGE_SIGNOFF_PREFIX | No | Signoff text prepended to outgoing messages. | |
| MS365_MCP_MESSAGE_SIGNOFF_SUFFIX | No | Signoff text appended to outgoing messages. | |
| MS365_MCP_ATTACHMENT_URL_KEY_FILE | No | Optional path to a signing key file for server-minted attachment URLs. | |
| MS365_MCP_CLIENT_CERTIFICATE_PATH | No | PEM file with a certificate and its unencrypted private key, used instead of MS365_MCP_CLIENT_SECRET in app mode. | |
| MS365_MCP_EXPECTED_HOME_ACCOUNT_ID | No | Require local MSAL auth to use this exact MSAL homeAccountId. | |
| MS365_MCP_READ_MAIL_TEXT_MAX_CHARS | No | Largest result read-mail-text returns in characters. Default: 80000. | |
| MS365_MCP_AUTH_CACHE_COMMAND_TIMEOUT_MS | No | Per-invocation timeout for MS365_MCP_AUTH_CACHE_COMMAND in milliseconds. Default: 10000. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
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 | |
This server cannot be deployed
Maintenance
ActivityActive
ResponsivenessNo issues