Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Outlook OAuth MCP Serverlist my upcoming calendar events for today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Outlook OAuth MCP Server
A minimal, spec-compliant MCP server for Microsoft Outlook with OAuth2 delegated access.
Features
MCP Spec Compliant: Implements RFC 9728 and RFC 8414
OAuth2 Delegated Access: Users authenticate with their own Microsoft accounts
Stateless Design: No token storage—tokens passed per-request
Rate Limiting: Configurable per-user rate limiting
Quick Start
Prerequisites
Node.js >= 20
Azure AD App Registration with delegated permissions
Installation
Configuration
Create a .env file:
Run
Server runs at http://localhost:3000
Azure AD Setup
1. Create App Registration
Go to Azure Portal → Azure Active Directory → App registrations
New registration → Name: "Outlook MCP Server"
Choose supported account types based on your needs
Register
2. Add API Permissions
Add these delegated permissions: User.Read, Mail.Read, Mail.ReadWrite, Mail.Send, Calendars.Read, Calendars.ReadWrite, offline_access
3. Configure Redirect URIs
Add platform: Web
http://localhost:6274/oauth/callback(MCP Inspector)https://your-production-app.com/callback(Production)
4. Get Credentials
Copy from Overview page:
Application (client) ID →
MS365_MCP_CLIENT_IDDirectory (tenant) ID →
MS365_MCP_TENANT_ID
Environment Variables
Variable | Required | Default | Description |
| Yes | - | Azure AD client ID |
| No | - | Azure AD client secret |
| No |
| Azure AD tenant ID |
| No |
| Server port |
| No |
| Bind address |
| No |
| Log level |
| No |
| CORS allowed origins |
| No |
| Max requests per window |
| No |
| Rate limit window (ms) |
| No | - | Comma-separated tenant IDs |
Docker
Testing with MCP Inspector
Configure: Server URL http://localhost:3000/mcp
Production Checklist
Deploy behind HTTPS reverse proxy
Set
MS365_MCP_CORS_ORIGINto your domainSet
MS365_MCP_ALLOWED_TENANTSfor multi-tenantUse client secret for confidential client flow
Monitor
/healthendpoint
License
MIT