Exchange EWS MCP
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Exchange EWS MCPshow my upcoming meetings this week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Exchange EWS MCP v0.9.0
English | ็ฎไฝไธญๆ
๐ฎ Give your on-premises Exchange an AI assistant.
Tired of copying last week's report? Digging through old mail before every reply? Checking calendars one person at a time just to book a meeting?
Exchange EWS MCP connects an MCP Agent to Microsoft Exchange through EWS + NTLM. The Agent can search mail, prepare drafts, update weekly reports, check availability, and manage meetings โ while important sends stay under user control.
Designed foron-premises Exchange with EWS + NTLM. It is not an Exchange Online / Microsoft Graph OAuth client.
โจ Highlights
๐ง Search mail, compose drafts, reply, forward, edit drafts, add attachments.
๐ฅ Resolve recipients from full pinyin names or complete email addresses.
๐ Update weekly reports while preserving the original Outlook HTML layout, including reports synthesized from other people's weekly-report emails.
๐ Check availability, find common time, create/edit meetings, and send invitations after confirmation.
๐ Store passwords in Windows Credential Manager.
๐ก๏ธ Draft-first workflows keep the final send under user control.
Related MCP server: outlook-mcp
๐งญ Architecture
flowchart LR
A["MCP client / Agent"] -->|stdio| S["Exchange EWS MCP"]
S --> M["Semantic mail workflows"]
S --> W["Weekly-report workflow"]
S --> C["Calendar coordination"]
M --> E["EWS client + NTLM"]
W --> E
C --> E
E --> X["On-premises Exchange"]
M --> R["Local reference store"]
W --> R
C --> R
S --> K["Windows Credential Manager"]The server runs locally on Windows and exposes higher-level mail and calendar workflows to the Agent. Exchange credentials and low-level Exchange IDs stay behind the server.
๐ Quick start
Clone โ install โ connect Exchange โ paste one server path into your MCP client.
1. Requirements
Windows 10/11 or Windows Server
Python 3.10โ3.13
Access to your Exchange EWS endpoint
An Exchange account allowed to use EWS with NTLM
2. Install
git clone https://github.com/ShermanGu/exchange-ews-mcp.git
cd exchange-ews-mcp
.\install.cmdThe installer creates .venv and installs everything locally.
3. Configure Exchange
.\.venv\Scripts\exchange-ews-mcp.exe configureSet the current mailbox user:
.\.venv\Scripts\exchange-ews-mcp.exe set-current-user `
--email "you@company.example" `
--display-name "Your Name"Check the connection:
.\.venv\Scripts\exchange-ews-mcp.exe status
.\.venv\Scripts\exchange-ews-mcp.exe testYour password is stored in Windows Credential Manager, not in the repository.
4. Set calendar preferences
.\.venv\Scripts\exchange-ews-mcp.exe set-calendar-preferences `
--time-zone "Asia/Shanghai" `
--workday-start "09:00" `
--workday-end "18:00" `
--slot-minutes 305. Connect your MCP client
โ Recommended: point directly to the EXE
After installation, the production MCP server is:
<repo>\.venv\Scripts\exchange-ews-mcp-server.exeIf your MCP client has Command and Arguments fields:
Command:
D:\tools\exchange-ews-mcp\.venv\Scripts\exchange-ews-mcp-server.exe
Arguments:
<leave empty>Use an absolute path, save the configuration, then restart the MCP client.
Or use JSON
{
"mcpServers": {
"exchange-ews": {
"command": "D:\\tools\\exchange-ews-mcp\\.venv\\Scripts\\exchange-ews-mcp-server.exe"
}
}
}You can also run:
.\.venv\Scripts\exchange-ews-mcp.exe mcp-config6. Verify
.\.venv\Scripts\exchange-ews-mcp.exe version
.\.venv\Scripts\exchange-ews-mcp.exe tool-listExpected version: 0.9.0 ยท Production tools: 11
๐ Done โ your Agent can now work with Exchange.
๐ฌ Try these prompts
Find my latest weekly report and update it with this week's progress.Summarize the weekly reports A and B sent me, then use that summary to generate my new weekly-report draft.Draft an email to wangxiaoming saying integration testing is complete. Don't send it.Find the earliest one-hour slot next week when lixiaohong and I are both free, create a meeting, and save it without sending.๐งฐ Main capabilities
Area | Capabilities |
Search/read mail, compose drafts, reply, forward, edit drafts, attachments | |
People | Recipient resolution and ambiguity handling |
Weekly reports | Read recent history and create an updated Reply All or fresh Compose draft without rebuilding HTML |
Calendar | Availability, common slots, calendar reads, create/update meetings, send invitations |
The compact mail facade uses search_mail, read_mail, resolve_people, save_mail_draft, and edit_mail_draft. Weekly reports use the single weekly_report entry followed by continue_action; HTML always remains server-owned. Calendar creation/editing uses save_meeting; confirmed sending uses send_meeting_invitation.
๐ Weekly reports
Direct user update โโโโโโโโโโโโโโโโ
โโ weekly_report(request=...)
search_mail/read_mail โ LLM summary โ
โ
Read recent history + slots
โ
Agent routes request by loc
โ
Update only relevant text
โ
Create an unsent Reply All or Compose draftFor aggregation prompts, the Agent first searches/reads the source reports and summarizes them; that summary becomes the request passed to weekly_report. The tool itself does not search other users' mail.
The Agent does not regenerate the whole HTML template. The server keeps the existing layout and updates approved text slots only. The Agent receives three weeks of context total (current editable report plus two prior reports), uses short local slot IDs such as s1, and the server automatically advances supported Subject date/week markers for the next draft.
๐ Safety in short
Mail is draft-first.
Meeting sends require explicit confirmation.
Credentials stay in Windows Credential Manager.
Ambiguous recipients or meeting times are returned for confirmation instead of guessed.
๐ Documentation
Agent connection ยท Agent tools ยท Architecture ยท Weekly reports ยท Development tests ยท Changelog
For contributors: CONTRIBUTING.md ยท SECURITY.md
Limitations
Windows is the primary runtime target. EWS behavior depends on Exchange version and mailbox policy. Weekly-report editing currently expects a supported Outlook/Word HTML reply structure. Exchange Online users should generally prefer Microsoft Graph and modern authentication.
License
Released under the MIT License.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for email + calendar via classic Outlook on Windows (COM automation). No Azure app registration, no OAuth โ it just drives the Outlook desktop client you're already signed into.88MIT
- AlicenseCqualityAmaintenanceSecure MCP server for on-prem Microsoft Exchange (EWS) with tools for email, calendar, contacts, folders, attachments, and free/busy availability.314MIT
- AlicenseAqualityDmaintenanceMCP server for any Microsoft Exchange / OWA deployment. Gives LLM agents access to email, calendar, directory search, folders, availability, and meeting analytics via 30 tools.307MIT
- AlicenseAqualityCmaintenanceA local stdio MCP server that enables reading, sending, and searching emails, as well as listing calendar events via Microsoft Graph API, using device-code authentication.1082MIT
Related MCP Connectors
Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.
A paid remote MCP for CLI tool MCP, built to return verdicts, receipts, usage logs, and audit-ready
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
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/ShermanGu/exchange-ews-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server