outlook-mcp
Microsoft Outlook MCP Server
MCP server for Microsoft Outlook — search, send, and manage mail and calendar with browser-session auth; no Azure AD app registration.
Clone the repo, build it, point your AI tool at dist/index.js. Uses the same OWA REST API that Outlook Web App calls internally. Auth is your normal Outlook browser login; access matches what your account can already do.
Prerequisites
Node.js 18+
Microsoft 365 / Outlook.com account
Chrome (macOS/Linux) or Edge (Windows)
Setup
git clone https://github.com/hickeroar/outlook-mcp.git
cd outlook-mcp
npm install
npm run buildRegister as a local stdio MCP server:
{
"mcpServers": {
"Outlook": {
"command": "node",
"args": ["/absolute/path/to/outlook-mcp/dist/index.js"]
}
}
}Session files: ~/.outlook-mcp-server/ (macOS/Linux) or %APPDATA%\outlook-mcp-server\ (Windows).
First login
Call outlook_login (use forceNew: true if session is dead). Browser opens for Microsoft sign-in. After that, tools use cached OWA tokens with automatic refresh.
Commands
npm run build
npm run typecheck
npm run cli -- status
npm run cli -- login
npm run cli -- inbox
npm run cli -- search "quarterly report"
npm run cli -- calendarMCP Resources
URI | Description |
| Signed-in user profile |
| Token and session status |
| Recent inbox messages (last 10) |
Tools
Authentication
Tool | Description |
| Login via browser (headless SSO first) |
| Auth and token diagnostics |
Tool | Description |
| List mail folders |
| List messages in a folder |
| Search mail by keyword |
| Get full message by ID |
| Send email immediately |
| Create draft without sending |
| Create reply draft (set |
| Create reply-all draft |
| Create forward draft |
| Update draft or message properties |
| Attach a local file to a draft/message (does not send) |
| Mark read/unread |
| Send existing draft |
| Move to another folder |
| Delete (moves to Deleted Items) |
Calendar
Tool | Description |
| List calendars |
| Events in date range |
| Single event by ID |
| Create event |
| Update event |
| Delete event |
| Cancel meeting (organiser) |
| Accept/decline/tentative RSVP |
| Recurring event instances |
Write tools (send, reply, delete, cancel, etc.) execute immediately. Confirm with the user before calling.
Architecture
src/
├── auth/ # Token extraction, refresh, encryption
├── browser/ # Playwright login (persistent profile)
├── api/ # OWA REST clients (mail, calendar, service.svc)
├── tools/ # MCP tool handlers
├── utils/ # HTTP, parsers, api-config
└── server.ts # OutlookServer MCP classSee docs/API-REFERENCE.md and docs/SESSION-DATA-REFERENCE.md for API and session details.
License
MIT