There are several MCP servers available for Outlook/Office 365. Based on your use case (searching emails and creating overviews), here are the best options:
Recommended Options
1. @softeria/ms-365-mcp-server (Most comprehensive)
- Covers the entire M365 suite: Outlook, Calendar, OneDrive, Excel
- Easy to install via npx: npx -y @softeria/ms-365-mcp-server
- Has a --read-only mode if you only need search/read access
- Good email tools: list-mail-messages, list-mail-folders, get-mail-message
- GitHub: https://github.com/Softeria/ms-365-mcp-server
2. elyxlz/microsoft-mcp (Minimal & clean)
- Focused on core functionality: email, calendar, OneDrive, contacts
- Good for searching and listing emails with list_emails and include_body option
- Multi-account support
- GitHub: https://github.com/elyxlz/microsoft-mcp
3. hvkshetry/office-365-mcp-server (Feature-rich)
- Advanced email search with KQL support
- 24 consolidated tools including Teams and Planner
- Good if you want broader M365 integration later
- GitHub: https://github.com/hvkshetry/office-365-mcp-server
Setup Requirements (All Options)
All of these require you to register an Azure AD app:
- Go to Azure Portal → Azure Active Directory → App registrations
- Create a new registration with redirect URI: http://localhost:3333/auth/callback
- Configure API permissions for Microsoft Graph (Mail.Read, Mail.ReadWrite, etc.)
- Generate a client secret
- Copy the Client ID and Client Secret to your MCP config
For Claude Desktop
Add to your claude_desktop_config.json:
json
{
"mcpServers": {
"ms365": {
"command": "npx",
"args": ["-y", "@softeria/ms-365-mcp-server", "--read-only"]
}
}
}
Given your existing technical setup with MCP servers for Odoo and other integrations, I'd recommend starting with the Softeria ms-365-mcp-server since it's easy to install, well-documented, and has the read-only mode which is perfect for search/overview use cases.
Quick Start (No Azure Setup Required)
Step 1: Add to Claude Desktop
Edit your Claude Desktop config file. On Windows it's at:
%APPDATA%\Claude\claude_desktop_config.json
Add this to your mcpServers section:
json
{
"mcpServers": {
"ms365": {
"command": "npx",
"args": ["-y", "@softeria/ms-365-mcp-server", "--read-only"]
}
}
}
The --read-only flag is perfect for your use case (searching and reading only, no sending/deleting).
Step 2: Restart Claude Desktop
Close and reopen Claude Desktop to load the new MCP server.
Step 3: Authenticate
In Claude Desktop, simply ask:
"Login to Microsoft 365"
Claude will call the login tool, which triggers a device code flow:
- You'll get a URL (typically https://microsoft.com/devicelogin) and a code
- Open the URL in your browser
- Enter the code and sign in with your Office 365 account
- Grant the requested permissions
- Back in Claude, use verify-login to confirm
Your token gets cached securely, so you won't need to re-authenticate often.
Available Email Tools
Once authenticated, you can use these for your email search/overview use case:
| Tool | Purpose |
|---|---|
| list-mail-messages | List recent emails (with filtering) |
| list-mail-folders | See all your folders (Inbox, Sent, etc.) |
| list-mail-folder-messages | List emails in a specific folder |
| get-mail-message | Read full email content |
| search-query | Unified search across emails, files, etc. |
Example Prompts You Can Use
Once set up:
- "Search my emails for messages from KUKA in the last month"
- "Give me an overview of unread emails about quotations"
- "Find all emails with attachments from last week"
- "List emails in my Inbox containing 'ISO 9283'"
Optional: Custom Azure App (For Production)
If you want more control over permissions or use this in a production environment, you can register your own Azure AD app:
- Go to Azure Portal → Azure Active Directory → App registrations
- Click New registration
- Set name: "MS365 MCP Server"
- Under Redirect URIs, add: http://localhost:6274/oauth/callback
- Click Register
- Copy the Application (client) ID
- Go to Certificates & secrets → New client secret → Copy the value
Go to API permissions → Add:
- Mail.Read (for reading emails)
- Mail.ReadBasic (optional, for basic mail info)
- User.Read (for profile info)
- Click Grant admin consent (if you're the admin)
Then update your config:
json
{
"mcpServers": {
"ms365": {
"command": "npx",
"args": ["-y", "@softeria/ms-365-mcp-server", "--read-only"],
"env": {
"MS365_MCP_CLIENT_ID": "your-client-id-here",
"MS365_MCP_CLIENT_SECRET": "your-client-secret-here"
}
}
}
}
And the actual version on my PC:
{
"mcpServers": {
"blender": {
"command": "uvx",
"args": [
"blender-mcp"
]
},
"visual": {
"command": "uv",
"args": [
"--directory",
"d:\\MCP\\GitHub\\visual-mcp-server",
"run",
"visual.py"
]
},
"odoo-website": {
"command": "node",
"args": [
"d:\\MCP\\OdooWebsite\\dist\\index.js"
],
"env": {
"ODOO_CONFIG_FILE": "d:\\MCP\\OdooWebsite\\ui\\odoo_databases.json"
}
},
"ms365": {
"command": "npx",
"args": [
"-y",
"@softeria/ms-365-mcp-server",
"--read-only"
]
}
}
}