Your AI's native
interface to Outlook.
$ go install github.com/desek/outlook-local-mcp/cmd/outlook-local-mcp@latestConnect Claude to your calendar.
No servers. No registration.
Just your data, locally.
A Model Context Protocol server that connects Claude — or any MCP client — directly to Microsoft Calendar and Mail via the Graph API. All data stays on your machine. OAuth tokens live in your OS keychain. The server process never leaves localhost.
Outlook Local MCP.
Install. Configure. Done.
Install
go install github.com/desek/outlook-local-mcp/cmd/outlook-local-mcp@latestConfigure
{ "mcpServers": { "outlook-local": { "command": "outlook-local-mcp", "env": { "OUTLOOK_MCP_DEFAULT_TIMEZONE": "America/New_York" } } }}
First Run
No credential setup before first use. On first tool call, a device code URL displays. Complete auth once in a browser. Tokens are cached in your OS keychain for ~90 days.
$ outlook-local-mcp INFO MCP server starting on stdio... INFO No accounts configured yet. INFO Authentication required for first account. To sign in, use a web browser to open https://aka.ms/devicelogin and enter the code: ABCD-EFGH INFO Authentication successful. INFO Token cached in OS keychain (~90 day expiry). INFO Ready. 4 tools registered.
Every credential stays on your machine.
No credential and no message body is relayed through a third party. The only outbound destinations are Microsoft’s own endpoints, plus any telemetry endpoint you configure. Verifiable, auditable, explainable to your security team.
OS-Native Token Storage
OAuth tokens stored in macOS Keychain, Linux libsecret, or Windows DPAPI. Your credentials never leave your operating system's secure enclave.
AES-256-GCM Fallback
When the OS keychain is unavailable, tokens are encrypted with AES-256-GCM in a local file. No plaintext credentials, ever.
Outbound Only
Outbound requests reach only Microsoft's own endpoints — the Graph API and the Identity Platform — plus any telemetry endpoint you configure. No third party relays your data. The one inbound socket is a temporary loopback port opened only for interactive browser sign-in.
PII Sanitization
Structured logging with PII sanitization enabled by default. Event subjects, attendee emails, and message content are stripped from logs.
OData Injection Protection
All user inputs validated and escaped before reaching the Graph API. OData query injection is blocked at the request construction layer.
Read-Only Mode
Set OUTLOOK_MCP_READ_ONLY=true to disable all write operations. Perfect for evaluation or security-restricted environments.
Optional OpenTelemetry export (OTLP gRPC) — zero overhead when disabled. Per-tool audit logging, structured JSON output, configurable log levels. Exponential backoff retry on transient Graph API errors. Graceful SIGINT/SIGTERM shutdown.