← Back to directory
M

Microsoft 365 MCP Server

Community
An MCP server for interacting with Microsoft 365 and Office services through the Graph API.
Category
Cloud Storage #4 of 15
Stars
★ 1.0k Very popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Node.js 20+ (14+ may work wi · Docker
Credentials
API key / credential required
License
MIT
Last commit
Tools
10
61FMRS · C

Powerful project covering most of Microsoft 365 Graph API, with many deployment options and advanced configuration, but requires careful attention to permissions, token storage, and third-party risks. Suitable for technical users; it's advisable to read the documentation thoroughly.

Strongest · Documentation 16/20 Weakest · Reliability 8/20

Reliability
8/20
Security and permissions
13/20
Maintenance
10/20
Documentation
16/20
Setup experience
14/20
Why each score
Reliability 8/20
Review is static and only the README plus repository metadata were supplied; no source files, CI workflows, or test suites were available. The README describes startup failure conditions, page limits, rate limits, and many configuration paths, so the happy path is plausible, but the MCP init/tool-list handshake and 1-to-1 tool-to-endpoint mapping cannot be verified. Deduction is applied for missing execution evidence; popularity/stars are not scored.
Security and permissions 13/20
No red-line issue (malware, real secrets in examples, covert exfiltration, etc.) is evident from the supplied material. The documented design includes default log redaction, OS credential store with 0600 file fallback, allowed-scopes least-privilege filtering, read-only mode, fail-closed external auth cache, and separation of BYOT/OAuth flows. Deductions: implementation is unverifiable without source, no explicit confirmation flow for destructive write operations is documented, and the default 300+ tool surface is broad unless deliberately filtered.
Maintenance 10/20
The repository is not archived, has an MIT license, 10 open issues, support channels, and npm/CI badges. However, commit history, release cadence, dependency-update practices, and a security-response channel are not evidenced in the supplied material, and the build badge cannot be independently confirmed. Stars are treated only as a discovery signal and add no score.
Documentation 16/20
The README is unusually thorough: installation, three authentication methods, CLI flags and environment variables, presets and dynamic discovery, token storage, Key Vault integration, deployment pointer, and client configuration examples for Claude and Open WebUI, plus explicit experimental/limitation notes. Deductions: docs/deployment.md and source files were not supplied, and there is no dedicated troubleshooting section.
Setup experience 14/20
Setup appears clear and low-friction for common clients: npx commands, JSON config snippets for Claude Desktop, CLI add commands, Open WebUI HTTP/OAuth steps, local dev instructions, Windows wrappers, and China cloud variant. Node prerequisites and optional custom Azure app registration are stated. Score is capped by the static-calibration rule because no CI or committed test evidence was available, and custom OAuth setup remains a manual step.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account data

Best for

  • Developers who want to integrate Microsoft 365 data into AI assistants or custom applications.
  • Scenarios requiring unified access across multiple services (email, calendar, files, Teams, etc.).
  • Lightweight solutions to interact with Graph API via MCP protocol.

Not for

  • Highly secure enterprise production environments (requires careful scope management and deployment complexity).
  • Admin tasks requiring Microsoft 365 admin permissions (like security alerts, audit logs) — consider companion project ms-365-admin-mcp-server.
  • Environments without Node.js.
  • Support for non-Microsoft clouds like GCC High (only Global and China 21Vianet currently).

Required permissions

  • Requires Microsoft Graph API permissions, dynamically requested based on enabled tools. Examples: User.Read, Mail.Read, Files.Read.
  • Organization mode (--org-mode) requires additional Graph permissions for Teams, SharePoint, etc. (e.g., Sites.Read.All).
  • Shared mailbox access requires delegated Mail.Read.Shared or Mail.Send.Shared scopes.
  • Use --allowed-scopes to restrict tool exposure; --extra-scopes to add extra scopes. Note: --allowed-scopes only narrows, never expands permissions.

Risks and side effects

  • Token security: File-based token storage may be exposed; use OS credential storage or secure custom paths.
  • Overly broad permissions: default requests all scopes implied by tools; use allowed-scopes or tool filtering to limit.
  • Multi-tenant token risk: With default 'common' tenant, personal account refresh tokens may be rejected as of June 2026, causing session expiry.
  • Third-party project risk: Not officially maintained, potentially less stable than official solutions.
  • HTTP mode OAuth setup complexity: Requires correct Azure AD app registration and redirect URIs.

Setup

Before you start

Runtime:Node.js 20+ (14+ may work wi · Docker

MS365_MCP_CLIENT_SECRET optionalsecret
MS365_MCP_OAUTH_TOKEN optionalsecret
Other optional settings (30)
MS365_MCP_CLIENT_ID optional
MS365_MCP_TENANT_ID optional
MS365_MCP_CLOUD_TYPE optional
MS365_MCP_OUTPUT_FORMAT optional
MS365_MCP_ORG_MODE optional
MS365_MCP_ALLOWED_SCOPES optional
MS365_MCP_EXTRA_SCOPES optional
MS365_MCP_TOKEN_CACHE_PATH optional
MS365_MCP_SELECTED_ACCOUNT_PATH optional
MS365_MCP_EXPECTED_USERNAME optional
MS365_MCP_EXPECTED_HOME_ACCOUNT_ID optional
MS365_MCP_MAX_TOP optional
MS365_MCP_MAX_PAGES optional
MS365_MCP_MAX_ITEMS optional
MS365_MCP_ALLOW_PAGINATION optional
MS365_MCP_BODY_FORMAT optional
MS365_MCP_MESSAGE_SIGNOFF_PREFIX optional
MS365_MCP_MESSAGE_SIGNOFF_SUFFIX optional
MS365_MCP_KEYVAULT_URL optional
MS365_MCP_AUTH_CACHE_COMMAND optional
MS365_MCP_AUTH_CACHE_COMMAND_TIMEOUT_MS optional
MS365_MCP_DISABLE_DCR optional
MS365_MCP_RATE_LIMIT_DISABLED optional
MS365_MCP_TRUST_PROXY_HOPS optional
MS365_MCP_REDACT_PII optional
READ_ONLY optional
ENABLED_TOOLS optional
LOG_LEVEL optional
SILENT optional
MS365_MCP_FORCE_WORK_SCOPES optional
  1. Ensure Node.js 20 or higher is installed.
  2. For Claude Desktop, add the following to your config file (Settings > Developer):
{
  "mcpServers": {
    "ms365": {
      "command": "npx",
      "args": ["-y", "@softeria/ms-365-mcp-server"]
    }
  }
}
  1. Save and restart Claude Desktop.
  2. Call the login tool in the client to authenticate via device code flow.
claude_desktop_config.json
{
  "mcpServers": {
    "ms365": {
      "command": "npx",
      "args": [
        "-y",
        "@softeria/ms-365-mcp-server"
      ]
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "ms365": {
      "command": "npx",
      "args": [
        "-y",
        "@softeria/ms-365-mcp-server"
      ]
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add ms365 -- npx -y @softeria/ms-365-mcp-server

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

The login, list-mail-messages and list-calendar-events tools should appear in the client's tool list; call login to complete device-code authentication, then a successful list-mail-messages call proves the connection works.

Troubleshooting

  1. Authentication failure: check if you've run --login or called login tool; verify device code steps.
  2. Token loss: default token cache may be lost on npm updates; set MS365_MCP_TOKEN_CACHE_PATH and MS365_MCP_SELECTED_ACCOUNT_PATH to persistent paths.
  3. Permission errors: use --list-permissions to see required scopes; ensure tenant admin consents.
  4. Tools unavailable: confirm correct mode (personal vs org) and presets (--preset).
  5. Personal account refresh token issue: set MS365_MCP_TENANT_ID=consumers to avoid 'common' tenant problem.
  6. HTTP mode port conflict: use --http [port] to specify port (default 3000).
  7. Proxy issues: if OAuth redirect is unreachable, set --public-url to a public address.

Things to try

Once connected, you can ask your AI assistant things like:

  • Log in to my Microsoft account and list my most recent emails
  • Show me my upcoming calendar events
  • List my OneDrive drives and the latest files
  • List the users and shared mailboxes in my organization

Tools 10

login writes
Log in using device code flow, checks for existing token.
list-mail-messages read-only
List mail messages.
get-mail-message read-only
Get details of a specific mail message.
list-calendar-events read-only
List calendar events.
list-drives read-only
List OneDrive or SharePoint drives.
get-drive-item read-only
Get drive item details.
download-bytes read-only
Universal binary reader to download files, attachments, photos, etc.
graph-batch writes
Execute batch Graph API requests.
Show 2 more tools
list-shared-mailbox-messages read-only
List messages from a shared mailbox (requires org mode and delegated permissions).
list-users read-only
List users and shared mailboxes (org mode).

Use cases

Personal account: manage email, calendar, OneDrive files, Excel, OneNote, to-do tasks, etc.
Work/school account: access Teams, SharePoint, shared mailboxes, user management, and other organizational features.
Automation workflows: interact directly with Microsoft 365 data via MCP for mail processing, calendar management, file operations, etc.
AI assistant integration: read and manipulate M365 data directly in AI tools like Claude, boosting productivity.

Supported clients

Claude Desktop
Open WebUI

Listed from the project's documentation, not tested by this site.

Overview

ms-365-mcp-server is a Model Context Protocol (MCP) server providing access to Microsoft 365 and Office services via the Microsoft Graph API. It supports multiple Microsoft cloud environments (Global, China 21Vianet) and offers 300+ tools covering email, calendar, OneDrive files, Excel, OneNote, To Do, Planner, contacts, user profile, search, and with organization mode, Teams, SharePoint, online meetings, and more. It supports multiple authentication methods (device code flow, OAuth authorization code flow, bring-your-own-token) and provides advanced features like multi-account support, tool presets, dynamic tool discovery, TOON output format (token reduction), read-only mode, tool filtering, scope filtering, and more. This project is a third-party open-source implementation (MIT license), not official Microsoft.

Similar servers

Source revision ed167f2fe4a6 Data synced 2026-10-12 Read the FMRS scoring method