Skip to main content
Glama

M365 MCP

npm version MIT License Node.js TypeScript CI

MCP server for Microsoft 365 via the Microsoft Graph API. Read-only access to your profile, calendar, email, Teams chats, OneDrive files, and meeting transcripts from any MCP client.

Installation

Claude Code

claude mcp add m365-mcp -e MS365_MCP_CLIENT_ID=your-client-id -e MS365_MCP_TENANT_ID=your-tenant-id -- npx -y @masonator/m365-mcp

Claude Desktop

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "m365-mcp": {
      "command": "npx",
      "args": ["-y", "@masonator/m365-mcp"],
      "env": {
        "MS365_MCP_CLIENT_ID": "your-azure-ad-client-id",
        "MS365_MCP_TENANT_ID": "your-azure-ad-tenant-id"
      }
    }
  }
}

First Run

On first use, the server opens your browser to sign in with Microsoft. After granting consent, tokens are stored locally at ~/.config/m365-mcp/tokens.json (permissions 600) and refreshed automatically.

Related MCP server: Microsoft 365 MCP Server

Environment Variables

Variable

Required

Description

MS365_MCP_CLIENT_ID

Yes

Azure AD application (client) ID

MS365_MCP_TENANT_ID

Yes

Azure AD tenant ID

MS365_MCP_CLIENT_SECRET

No

Azure AD client secret (confidential clients only)

MS365_MCP_TIMEZONE

No

Timezone for calendar (default: system timezone)

MS365_MCP_REDIRECT_URL

No

OAuth redirect URI (default: dynamic port, http://localhost:{port}/callback)

Azure AD Setup

Register an application in Azure AD with these settings:

  1. App registration > New registration

  2. Redirect URI: http://localhost (Web platform) — or set a fixed URI via MS365_MCP_REDIRECT_URL

  3. Certificates & secrets > New client secret

  4. API permissions > Add the following delegated permissions:

    • User.Read

    • Calendars.Read

    • Mail.Read

    • Chat.Read

    • Files.Read

    • OnlineMeetingTranscript.Read.All

    • Sites.Read.All

Tools

ms_auth_status

Check connection status. If not connected, opens browser to sign in.

ms_profile

Fetch your Microsoft 365 profile — display name, email, job title, office location.

ms_calendar

Fetch calendar events. Defaults to today.

Parameter

Description

date

Specific date (YYYY-MM-DD)

start

Start of range (ISO 8601)

end

End of range (ISO 8601)

ms_mail

Read recent emails with optional keyword search.

Parameter

Description

search

Keyword to filter emails

count

Number of emails (1-25, default 10)

ms_chat

Read Teams chats. Without chat_id lists recent chats; with chat_id returns messages from that thread.

Parameter

Description

chat_id

Specific chat thread ID

count

Number of items (1-25, default 10)

ms_files

Browse or search OneDrive files.

Parameter

Description

path

Folder path (e.g., /Documents)

search

Search across OneDrive

count

Max items (1-50, default 20)

ms_transcripts

Fetch Teams meeting transcripts. Returns previews (~3000 chars) with a transcript_id for drill-down to the full transcript.

Parameter

Description

date

Date (YYYY-MM-DD)

start

Start of range (ISO 8601)

end

End of range (ISO 8601)

transcript_id

ID from a previous list call for full content

Development

git clone https://github.com/StuMason/m365-mcp.git
cd m365-mcp
npm install
npm run build
npm test

Contributing

See CONTRIBUTING.md for details.

License

MIT - Stu Mason

A
license - permissive license
-
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
1dRelease cycle
5Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Official Microsoft MCP Server to query Microsoft Entra data using natural language

  • The personal context layer for AI: your profile and files, read by any MCP client over OAuth.

  • Read-only MCP server for ClassQuill, a tutoring-business-management platform.

View all MCP Connectors

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/StuMason/m365-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server