Outlook Assistant
The Outlook Assistant MCP server enables AI-powered management of Outlook email, calendar, folders, and rules through natural language commands.
Email Management: List, search, and read emails across all folders with advanced filtering (sender, recipient, subject, attachments, unread status). Send emails with CC/BCC support, importance levels, and HTML/plain text body options. Mark emails as read/unread and move them between folders.
Calendar Management: Full event lifecycle management including listing upcoming events, creating events with attendees, accepting/declining invitations with optional comments, canceling, and deleting events.
Folder Organization: List folder hierarchy with item counts, create new folders (including nested structures), and move emails between folders.
Inbox Rules Automation: List existing rules with detailed conditions and actions, create new rules with conditions (sender, subject, attachments) and actions (move to folder, mark as read), and edit rule execution order/sequence.
Authentication & Status: OAuth 2.0 authentication with Microsoft Graph API, automatic token refresh for persistent access, check authentication status, and force re-authentication if needed.
Key Features: Automatic pagination for large result sets (up to 500 emails/events), configurable output formats (TOON or plain text), and searches across all folders by default.
Outlook MCP Server
Let AI manage your Outlook inbox, calendar, contacts, tasks and rules — through natural language.
Built on Model Context Protocol · Powered by Microsoft Graph API
What is this?
This MCP server turns Claude into a full-featured Outlook assistant. Instead of clicking through the Outlook UI, just ask Claude:
"Show me unread emails from this week" "Schedule a meeting with Alice tomorrow at 3pm and check if she's free first" "Forward that email to my team and create a follow-up task" "Set my out-of-office until Friday"
Claude handles authentication, API calls, pagination, filtering — everything. You just talk.
Related MCP server: Outlook MCP
Capabilities
Area | Tools | What Claude can do |
13 | List, search, read (preview or full body), send, reply, reply-all, forward, delete, mark read/unread, manage drafts, list and download attachments | |
Calendar | 10 | List calendars, list events, create, update, accept, tentatively accept, decline, cancel, delete, check free/busy schedules |
Folders | 3 | List folder hierarchy, create folders, move emails between folders |
Contacts | 4 | List/search, create, update, delete contacts in your address book |
Mailbox | 2 | Get mailbox settings (timezone, language), set out-of-office auto-replies |
Tasks | 5 | List task lists, list tasks, create, complete, delete (Microsoft To Do) |
Rules | 5 | List, create, update, delete inbox rules and change rule execution order |
Auth | 3 | OAuth 2.0 with automatic token refresh — authenticate once, use forever |
45 tools total.
Quick Start
# 1. Clone and install
git clone https://github.com/titanzero/outlook-mcp.git
cd outlook-mcp
npm install
# 2. Configure (see Azure Setup below)
cp .env.example .env
# Edit .env with your Azure credentials
# 3. Start the OAuth server and authenticate
npm run auth-server
# 4. Add to Claude Desktop config and start using!Azure App Setup
You need an Azure app registration to connect to Microsoft Graph.
Click New registration
Name:
Outlook MCP Server(or anything you like)Account type: Accounts in any organizational directory and personal Microsoft accounts
Redirect URI: Web →
http://localhost:3333/auth/callbackClick Register
Copy the Application (client) ID → this is your
OUTLOOK_CLIENT_ID
Go to API permissions → Add a permission → Microsoft Graph → Delegated permissions, then add:
offline_accessUser.ReadMail.ReadMail.ReadWriteMail.SendCalendars.ReadCalendars.ReadWriteContacts.ReadContacts.ReadWriteMailboxSettings.ReadMailboxSettings.ReadWriteMailboxFolder.ReadMailboxFolder.ReadWriteTasks.ReadTasks.ReadWrite
Go to Certificates & secrets → Client secrets → New client secret
Set description and longest expiration
Copy the secret VALUE (not the Secret ID!)
This is your
OUTLOOK_CLIENT_SECRET
Configuration
Environment Variables
Create .env in the project root:
OUTLOOK_CLIENT_ID=your-application-client-id
OUTLOOK_CLIENT_SECRET=your-client-secret-VALUEImportant: Always use the secret VALUE from Azure, not the Secret ID.
Claude Desktop
Add to your Claude Desktop config (claude_desktop_config.json):
{
"mcpServers": {
"outlook-assistant": {
"command": "node",
"args": ["/absolute/path/to/outlook-mcp/index.js"],
"env": {
"OUTLOOK_CLIENT_ID": "your-client-id",
"OUTLOOK_CLIENT_SECRET": "your-client-secret"
}
}
}
}Advanced
Edit config.js to customize server name, timezone, pagination limits, field selections, and response format (toon or text).
Authentication Flow
You ──ask Claude──▸ "authenticate"
│
Claude returns URL ◂────┘
│
You open URL in browser ▸ Microsoft login ▸ Grant permissions
│
┌───────────────────────────┘
▼
OAuth callback on localhost:3333
Tokens saved to ~/.outlook-mcp-tokens.json
✔ Auto-refresh — no re-auth neededStep 1 — Start the auth server (must be running before authenticating):
npm run auth-serverStep 2 — Ask Claude to authenticate, open the URL, sign in, done.
Tokens persist in ~/.outlook-mcp-tokens.json and refresh automatically.
Project Structure
index.js ── MCP entry point
config.js ── centralized constants & settings
outlook-auth-server.js ── standalone OAuth server
auth/ ── authentication & token management
email/ ── list, search, read, send, reply, forward, delete,
│ mark-as-read, attachments, drafts
calendar/ ── list calendars & events, create, update, accept,
│ tentatively-accept, decline, cancel, delete, free-busy
folder/ ── list, create, move
contacts/ ── list, create, update, delete
mailbox/ ── settings, out-of-office
tasks/ ── task lists and tasks (Microsoft To Do)
rules/ ── list, create, update, delete, edit-sequence
utils/
├── graph-client.js ── Graph SDK wrapper with pagination
├── response-formatter.js ── TOON / plain-text output toggle
└── response-helpers.js ── error detection & MCP response builders
scripts/ ── CLI utilities & debug helpersAvailable Commands
Command | Description |
| Install dependencies |
| Start the MCP server (stdio) |
| Start OAuth server on port 3333 |
| Launch MCP Inspector for interactive testing |
| Run Jest test suite |
| Print env vars and start server |
| Free port 3333 if occupied |
Troubleshooting
Run npm install first.
npx kill-port 3333
npm run auth-serverYou're using the Secret ID instead of the Secret Value. Go to Azure Portal → Certificates & secrets → copy the Value column.
The auth server isn't running. Start it first with npm run auth-server, then retry.
Token may be expired or corrupted. Delete ~/.outlook-mcp-tokens.json and re-authenticate.
Verify the absolute path to
index.jsin your Claude Desktop configEnsure
OUTLOOK_CLIENT_IDandOUTLOOK_CLIENT_SECRETare setRestart Claude Desktop after config changes
Extending the Server
Adding a new tool is straightforward:
Create a handler file in the appropriate module directory
Export
{ name, description, inputSchema, handler }Add it to the module's
index.jsexportsIt's automatically registered via
index.jsat the root
See .cursor/rules/new-tool.mdc for the full checklist.
License
Maintenance
Related MCP Servers
- Alicense-qualityDmaintenanceEnables sending emails through Microsoft Outlook using the Microsoft Graph API. Provides the missing send-email capability for Agent Builder's Outlook connector with support for both delegated and app-only authentication flows.Last updatedMIT
- Alicense-qualityCmaintenanceEnables semantic search and AI-powered analysis of Outlook emails using RAG-based natural language queries and Vision AI for architectural documents, with specialized support for AEC workflows.Last updatedMIT
- AlicenseBqualityCmaintenanceA MCP server for Claude that reads Outlook emails its attachments through the Microsoft Graph API.Last updated616MIT
- Flicense-qualityDmaintenanceA Python-based MCP server for Microsoft Outlook integration using Microsoft Graph API, enabling email reading/sending, calendar management, and contact operations through Claude Desktop.Last updated1
Related MCP Connectors
MCP server for Argo RPG Platform — connects AI assistants to campaign data via OAuth2
Official Microsoft MCP Server to query Microsoft Entra data using natural language
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Appeared in Searches
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/titanzero/outlook-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server