M365 MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MS365_MCP_TIMEZONE | No | Timezone for calendar (default: system timezone) | |
| MS365_MCP_CLIENT_ID | Yes | Azure AD application (client) ID | |
| MS365_MCP_TENANT_ID | Yes | Azure AD tenant ID | |
| MS365_MCP_REDIRECT_URL | No | OAuth redirect URI (default: dynamic port, http://localhost:{port}/callback) | |
| MS365_MCP_CLIENT_SECRET | No | Azure AD client secret (confidential clients only) |
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
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| ms_auth_statusA | Check Microsoft 365 connection status. If not connected, opens browser to sign in. |
| ms_profileB | Fetch the user's Microsoft 365 profile. Optionally include manager, reports, groups, or photo. |
| ms_calendarA | Fetch the user's Microsoft 365 calendar events. Defaults to today if no date params given. Can also list calendars or drill down into a specific event. |
| ms_mailA | Read the user's recent emails from Microsoft 365. Without message_id: lists emails with preview text. With message_id: returns the full email body. Use folders: true to list mail folders, folder to read from a specific folder, attachments with message_id to list attachments, or filter for quick filters. |
| ms_chatA | Read the user's recent Microsoft Teams chats. Without chat_id lists recent chats; with chat_id returns messages from that chat. |
| ms_filesC | Browse or search the user's OneDrive files. |
| ms_transcriptsA | Fetch meeting transcripts from Microsoft Teams. Without transcript_id: lists meetings with ~3000 char previews. With transcript_id: returns transcript content in chunks (default 10,000 chars). Use offset to paginate through long transcripts. |
| ms_scheduleA | Check people's availability / free-busy status for a given time window. Accepts one or more email addresses and returns their schedule with time slots showing free, busy, tentative, out of office, or working elsewhere. |
| ms_sharepointA | Search SharePoint sites, list site lists, or browse list items. Without parameters, searches all accessible sites. Provide site_id to see its lists, or site_id + list_id to browse items. |
| ms_teamsA | Browse Microsoft Teams the user has joined. Without parameters lists joined teams; with team_id lists that team’s channels; with team_id + channel_id returns recent channel messages. Distinct from ms_chat, which covers private/group chats rather than team channels. |
| ms_tasksA | Read Microsoft To Do and Planner tasks. Without parameters lists To Do task lists; with list_id returns the tasks in that list; with planner=true returns Planner tasks assigned to the user. |
| ms_peopleA | Look people up in the organisation directory. Use search to resolve a name to an email address (the input ms_schedule needs), user to read one person’s details plus their manager and direct reports, or groups to list the groups and teams the signed-in user belongs to. |
| ms_searchA | Search across Microsoft 365 in one call — mail, Teams chats, calendar events, OneDrive files and SharePoint. Use this when you do not already know where something lives; use the per-area tools (ms_mail, ms_chat, ms_files) when you do. Supports KQL, so "from:jane subject:budget" works. |
| ms_insightsA | Documents the user recently worked with or had shared with them, from Microsoft Graph item insights. Good for "what was I working on" and "what did someone send me" without knowing a filename. Defaults to recently used. |
| ms_briefA | One call that assembles a catch-up. With no arguments: today’s meetings, unread mail, recent chats, open tasks and yesterday’s meeting transcripts. With person: who they are and your recent mail and chats involving them. Use this instead of calling four or five tools separately. |
| ms_server_infoA | Returns m365-mcp server metadata: version, available tools, and runtime info. Useful for debugging. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 16 tools
Each tool targets a clearly distinct Microsoft 365 surface or aggregation purpose, and descriptions explicitly resolve likely overlaps such as ms_search vs per-area tools, ms_chat vs ms_teams, and ms_brief vs the individual read tools.
All tools follow the same predictable ms_ prefix plus snake_case convention, producing a uniform namespace despite the mix of nouns and status/info tools.
16 tools is slightly above the typical 3-15 range, but reasonable for a broad M365 suite covering mail, calendar, files, Teams, SharePoint, tasks, people, search, and summary workflows.
The surface is comprehensive for a read-only M365 assistant, covering the main content areas and cross-cutting search/catch-up needs, though it lacks write operations such as sending mail, creating events, or posting messages.