
OWA Exchange MCP Server
Connects to any Microsoft Exchange or OWA deployment and exposes 30 tools across email, calendar, directory, folders, availability, and meeting analytics. You can read and send mail, create and respond to meetings, search Active Directory, find common free time slots across attendees, and pull meeting statistics. Handles browser-based 2FA login with headless automation, then encrypts session cookies at rest with AES-256. Works with on-premise or hosted Exchange servers. Reach for this when you need an LLM agent to interact with corporate Exchange infrastructure, especially in environments that still run their own mail servers instead of Office 365.
- GitHub stars
- 5
- tools
- 30
- transport
- STDIO
- env vars
- 2
- last updated
- Feb 15, 2026
Tools
30 toolsPublic tool metadata for what this MCP can expose to an agent.
get_emailsList emails from a folder with filtering
List emails from a folder with filtering
No parameter schema in public metadata yet.
get_emailGet full email content by ID
Get full email content by ID
No parameter schema in public metadata yet.
send_emailSend a new email
Send a new email
No parameter schema in public metadata yet.
reply_emailReply to an email
Reply to an email
No parameter schema in public metadata yet.
forward_emailForward an email
Forward an email
No parameter schema in public metadata yet.
delete_emailDelete an email
Delete an email
No parameter schema in public metadata yet.
move_emailMove email to another folder
Move email to another folder
No parameter schema in public metadata yet.
mark_email_readMark email as read/unread
Mark email as read/unread
No parameter schema in public metadata yet.
download_attachmentsDownload file attachments from an email
Download file attachments from an email
No parameter schema in public metadata yet.
get_email_linksExtract hyperlinks from an email body
Extract hyperlinks from an email body
No parameter schema in public metadata yet.
get_calendar_eventsGet events in a date range (supports recurring expansion)
Get events in a date range (supports recurring expansion)
No parameter schema in public metadata yet.
create_meetingCreate a meeting with attendees
Create a meeting with attendees
No parameter schema in public metadata yet.
update_meetingUpdate an existing meeting
Update an existing meeting
No parameter schema in public metadata yet.
cancel_meetingCancel a meeting and notify attendees
Cancel a meeting and notify attendees
No parameter schema in public metadata yet.
respond_to_meetingAccept, decline, or tentatively accept
Accept, decline, or tentatively accept
No parameter schema in public metadata yet.
download_event_attachmentsDownload file attachments from a calendar event
Download file attachments from a calendar event
No parameter schema in public metadata yet.
get_event_linksExtract hyperlinks from an event description
Extract hyperlinks from an event description
No parameter schema in public metadata yet.
find_personSearch people in Active Directory
Search people in Active Directory
No parameter schema in public metadata yet.
get_foldersList mail folders with unread counts
List mail folders with unread counts
No parameter schema in public metadata yet.
create_folderCreate a new mail folder
Create a new mail folder
No parameter schema in public metadata yet.
rename_folderRename an existing folder
Rename an existing folder
No parameter schema in public metadata yet.
empty_folderEmpty all items from a folder
Empty all items from a folder
No parameter schema in public metadata yet.
delete_folderDelete a mail folder
Delete a mail folder
No parameter schema in public metadata yet.
move_folderMove a folder to a different parent
Move a folder to a different parent
No parameter schema in public metadata yet.
check_sessionCheck if the OWA session is authenticated
Check if the OWA session is authenticated
No parameter schema in public metadata yet.
find_free_timeFind free slots in your calendar
Find free slots in your calendar
No parameter schema in public metadata yet.
find_meeting_timeFind common free slots for multiple people
Find common free slots for multiple people
No parameter schema in public metadata yet.
get_meeting_statsMeeting count statistics for multiple people
Meeting count statistics for multiple people
No parameter schema in public metadata yet.
get_meeting_contactsConnection matrix — who you meet with most
Connection matrix — who you meet with most
No parameter schema in public metadata yet.
loginAuthenticate to OWA (credential setup + 2FA login)
Authenticate to OWA (credential setup + 2FA login)
No parameter schema in public metadata yet.
Sponsors
Configuration
EXCHANGE_OWA_URLBase URL of your OWA instance (e.g. https://owa.example.com)
EXCHANGE_COOKIE_FILEPath to session cookies file (default: session-cookies.txt)
Readme
OWA Exchange MCP Server
MCP (Model Context Protocol) server for any Microsoft Exchange / OWA (Outlook Web Access) deployment. Gives LLM agents access to email, calendar, directory search, folders, availability, and meeting analytics via 30 tools.
Works with any on-premise or hosted Exchange server that exposes OWA.
Quick Start
# Copy and edit the MCP config with your OWA URL
cp .mcp.json.example .mcp.json
# One-time: set up encrypted credentials
python3 login.py --setup
# Login (opens headless browser, 2FA approval required)
python3 login.py
# Install the MCP server
pip install -e .
Install
Add to your MCP client config. Replace https://owa.example.com with your OWA URL.
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"exchange": {
"command": "uvx",
"args": ["exchange-mcp-server"],
"env": {
"EXCHANGE_OWA_URL": "https://owa.example.com"
}
}
}
}
Cursor (.cursor/mcp.json):
Details
- Repository
- github.com/nhype/owa-exchange-mcp
- Categories
- Communication & Messaging, Productivity & Office
- Package
exchange-mcp-server- Transport
- STDIO
- Registry
- MCP registry, active