Outlook MCP (Model Context Protocol) Server
About
An MCP Server for Microsoft Outlook using GraphAPI
Details
- Author
- kacase
- Downloads
- 343
- Categories
- Communication
Jump to
- Calendar event CRUD operations (list, create, get, update, delete)
- Email CRUD operations (list, get, send, draft, mark read/unread, delete)
- People search and retrieval within the organization
- Full TypeScript implementation with Zod validation
- Complies with Model Context Protocol for LLM tool integration
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Outlook MCP (Model Context Protocol) ServerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install via npx and configure the server in your Claude Desktop config with your Azure App registration details. Set the environment variables AUTHORITY (Tenant ID), CLIENT_ID, MCP_SERVER_NAME, and MCP_SERVER_VERSION. Run npx mcp_outlook or point to a local build.
listCalendarEvents
Lists the user's calendar events for a specified time range
createCalendarEvent
Creates a new calendar event. Ensure availability and user confirmation before sending invites.
getCalendarEvent
Gets details of a specific calendar event
updateCalendarEvent
Updates an existing calendar event
deleteCalendarEvent
Deletes a calendar event
listEmails
Lists the user's emails from a specified folder
sendEmail
Sends a new email message
getEmail
Gets details of a specific email message
createDraft
Creates a draft email message without sending it
markEmailAsRead
Marks an email message as read
markEmailAsUnread
Marks an email message as unread
deleteEmail
Deletes an email message
searchPeople
Searches for people relevant to the current user (colleagues, contacts, etc.)
getPerson
Gets details of a specific person by ID
getSchedule
Gets free/busy schedule information for specified users
findMeetingTimes
Finds suitable meeting times for a group of attendees. Correct E-Mail addresses are required.
addAttendeesToCalendarEvent
Adds one or more attendees to an existing calendar event. Fetches the event, merges new attendees with existing ones (avoiding duplicates), and updates the event.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"outlook mcp (model context protocol) server": {
"outlook": {
"command": "npx",
"args": [
"mcp_outlook"
],
"env": {
"AUTHORITY": "your-authority-id",
"CLIENT_ID": "your-client-id",
"MCP_SERVER_NAME": "outlook-mcp",
"MCP_SERVER_VERSION": "1.0.0"
}
}
}
}
}
McpServers
{
"outlook": {
"command": "npx",
"args": [
"mcp_outlook"
],
"env": {
"AUTHORITY": "your-authority-id",
"CLIENT_ID": "your-client-id",
"MCP_SERVER_NAME": "outlook-mcp",
"MCP_SERVER_VERSION": "1.0.0"
}
}
}
Outlook MCP (Model Context Protocol) Server
A Model Context Protocol server that integrates with Microsoft Outlook through Microsoft Graph API, allowing Claude and other LLMs to check calendar events, schedule new ones, read emails, and send messages.
Features
- π
Calendar Integration: View, list, create, update, and delete calendar events
- π§ Email Integration: Read, send, draft, and manage emails from your Outlook account
- π Model Context Protocol: Follows MCP standards for LLM tool integration
- π‘οΈ Type Safety: Full TypeScript implementation with Zod validation
Prerequisites
- Node.js 18+
- Microsoft 365 account with appropriate permissions
- Microsoft Azure App Registration with Graph API permissions (Calendar and Mail)
Setup
1. Register an application in Azure Active Directory:
- Go to Azure Portal
- Navigate to "App registrations"
- Create a new registration with a redirect URI of type "Public client/native (mobile & desktop)"
- Register http://localhost as the redirect URI
- Configure API permissions:
- Choose Microsoft Graph and type delegated, as we will act on the users behalf
- For Calendar: "Calendars.Read" and "Calendars.ReadWrite"
- For Email: "Mail.Read", "Mail.ReadWrite" and "Mail.Send"
- For People: "People.Read"
2. Note the values from your Azure app registration (Overview) to use for the MCP config as environment variables:
- Client ID (Application (client) ID)
- Authority ID (Directory (tenant) ID)
3. Register the MCP server
For Claude Desktop, create or update your configuration in ~/.claude/config.json:
{
"mcpServers": {
"outlook": {
"command": "npx",
"args": [
"mcp_outlook"
],
"env": {
"AUTHORITY": "your-authority-id",
"CLIENT_ID": "your-client-id",
"MCP_SERVER_NAME": "outlook-mcp",
"MCP_SERVER_VERSION": "1.0.0"
}
}
}
}
Make sure to replace the path and environment variables with your actual values.
Available Tools
Calendar Tools
- listCalendarEvents: Lists the user's calendar events for a specified time range - createCalendarEvent: Creates a new calendar event - getCalendarEvent: Gets details of a specific calendar event - updateCalendarEvent: Updates an existing calendar event - deleteCalendarEvent: Deletes a calendar eventEmail Tools
- listEmails: Lists emails from a specified folder (inbox, sent, drafts, etc.) - getEmail: Gets details of a specific email message - sendEmail: Sends a new email message - createDraft: Creates a draft email message without sending it - markEmailAsRead: Marks an email message as read - markEmailAsUnread: Marks an email message as unread - deleteEmail: Deletes an email messagePeople Tools
- searchPeople Find a person in the organisation or your recent contacts - getPerson Get information on a personResources
- calendar: Resource containing calendar events data - inbox: Resource containing inbox messages dataDevelopment
Run in development mode with live reloading:
npm run dev
Run linting:
npm run lint
Configure your MCP locally
{
"mcpServers": {
"outlook": {
"command": "node",
"args": [
"/ABSOLUTE/PATH/TO/outlook_mcp/build/index.js"
],
"env": {
"AUTHORITY": "your-authority-id",
"CLIENT_ID": "your-client-id",
"MCP_SERVER_NAME": "outlook-mcp",
"MCP_SERVER_VERSION": "1.0.0"
}
}
}
}
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



