Outlook MCP Server
Outlook MCP Server
Public Outlook / Microsoft 365 mail MCP server — Streamable HTTP + OAuth 2.1, same architecture as the Salesforce MCP Server. One deployed URL works with:
Archon AI portal (Managed MCP via Anthropic / OpenAI)
Claude.ai custom connectors
ChatGPT custom MCP
Any standalone MCP client (n8n, Cursor, custom apps) via the PATH B flow
Tools (11)
Tool | Kind | Description |
| read | Connected mailbox owner (name, email) |
| read | List a folder's messages, filters: unread, sender |
| read | Full body of one message |
| read | Full-text search across all folders (KQL) |
| read | Folder tree with unread counts |
| read | Attachment names/types/sizes |
| write | Send a new email |
| write | Reply / reply-all in-thread |
| write | Draft without sending |
| write | Move to folder / archive / trash |
| write | Read/unread + follow-up flag |
Setup
1. Azure app registration (one-time)
https://entra.microsoft.com → App registrations → New registration
Supported account types: Accounts in any organizational directory and personal Microsoft accounts
Redirect URIs (type Web):
https://claude.ai/api/mcp/auth_callback(Claude connector)<BASE_URL>/auth/callback(PATH B standalone)
API permissions → Microsoft Graph → Delegated:
Mail.Read,Mail.ReadWrite,Mail.Send,User.Read,offline_accessCertificates & secrets → New client secret → copy the Value
2. Run
cp .env.example .env # fill in MS_CLIENT_ID / MS_CLIENT_SECRET / BASE_URL
npm install
npm run dev # http://localhost:31003. Deploy (Render)
Build command:
npm installStart command:
npm startEnv vars:
BASE_URL(the Render URL),MS_CLIENT_ID,MS_CLIENT_SECRET,MS_TENANT=common,MS_REDIRECT_URI=<BASE_URL>/auth/callbackAfter deploy, add
<BASE_URL>/auth/callbackto the Azure app's redirect URIs.
Auth paths
PATH A — Bearer header (portals, Claude connector). The client sends
Authorization: Bearer <graph access token> on /mcp. Tokens acquired
through this server's /token proxy get vaulted, enabling server-side
refresh when Graph returns 401 (Graph tokens live ~1 hour).
PATH B — session flow (standalone clients). Visit
<BASE_URL>/auth?session=<id> → Microsoft login → tokens stored server-side
keyed by the stable Microsoft user id.
The /authorize and /token proxies force the real Azure client credentials
so Dynamic Client Registration (Claude invents a random client id) still
works — the only requirement is the client's redirect URI being whitelisted
on the Azure app.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/SfdcAnnu/Outlook-MCP-Server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server