1

Enable Developer Mode

Open Claude Desktop and go to Settings (top-right menu or Cmd ,)

Navigate to the Advanced tab and toggle on Developer Mode

A new Developer menu item will appear in the top navigation bar

2

Add the Connector

Click Developer in the menu bar → Configure Third-Party Inference…

Go to the Connectors & Extensions tab

Click Add connector, then fill in the fields below and click Save

Field Value
Name M365 MCP Server
URL http://mcp.itelalabs.net/mcp
Tenant ID 8ecce40f-6c18-4c19-9aa7-c287c408d0f3
Authentication OAuth 2.0
Client ID e52d76e5-0bb1-45b4-8aa9-990227d6df70
Scope api://91016ac2-7c06-480f-8473-2854a9d06501/access_as_user
Redirect URI http://mcp.itelalabs.net/callback
3

Enable Tool Use & Sign In

In the connector's Capabilities section, toggle on Tool Use — it defaults to disabled.

Click Connect. A browser window will open for Microsoft sign-in.

After signing in you'll see a confirmation page and the window closes automatically.

⚠️
Make sure the Scope field is exactly as shown above. A wrong scope causes a 401 Unauthorized even after successful sign-in.
4

Auto-Approve Tool Calls (optional)

By default Claude Desktop asks for approval on every tool call. Add the snippet below to ~/Library/Application Support/Claude/claude_desktop_config.json to skip the prompt for these read-only tools, then restart Claude Desktop.

claude_desktop_config.json
{
  "mcpServers": {
    "m365-mcp": {
      "url": "http://mcp.itelalabs.net/mcp",
      "autoApprove": [
        "whoami",
        "mail_search",
        "mail_get_message",
        "mail_list_folders",
        "calendar_list_events",
        "calendar_get_event",
        "calendar_find_time",
        "teams_list_chats",
        "teams_search_messages",
        "teams_get_channel_messages",
        "sharepoint_search",
        "onedrive_list",
        "files_get_content"
      ]
    }
  }
}
💡
All 13 tools are read-only — they never write or modify your M365 data.

Available Tools

ToolDescriptionRequires
whoamiGet signed-in user profileUser.Read
mail_searchSearch emails by keywordMail.Read
mail_get_messageGet full email content by IDMail.Read
mail_list_foldersList mail folders with countsMail.Read
calendar_list_eventsList calendar events in date rangeCalendars.Read
calendar_get_eventGet event details by IDCalendars.Read
calendar_find_timeFind meeting times for attendeesCalendars.Read
teams_list_chatsList Teams chatsChat.Read
teams_search_messagesSearch Teams messagesChat.Read
teams_get_channel_messagesGet channel messagesChannelMessage.Read.All
sharepoint_searchSearch SharePoint/OneDrive filesFiles.Read.All
onedrive_listList OneDrive folder contentsFiles.Read.All
files_get_contentGet file metadata and contentFiles.Read.All
?

Troubleshooting

SymptomFix
Tools are disabled / grayed out in ClaudeEnable Tool Use in the connector Capabilities settings
Untrusted client errorVerify the Client ID in the connector matches e52d76e5-0bb1-45b4-8aa9-990227d6df70
jwt audience invalidVerify the Scope field is exactly api://91016ac2-7c06-480f-8473-2854a9d06501/access_as_user
Missing scope / consent errorRe-authenticate after updating the scope; ask your admin to grant consent
Browser window doesn't close after sign-inClose it manually — the connection is still established
For server-side issues contact your administrator. Server health: /healthz