Skip to main content
Glama
ShermanGu
by ShermanGu

Exchange EWS MCP v0.9.0

Английский | 简体中文

CI Python 3.10+ Platform: Windows License: MIT

📮 Дайте вашему локальному Exchange ИИ-ассистента.

Надоело копировать прошлонедельный отчёт? Копаться в старых письмах перед каждым ответом? Проверять календарь одного человека за другим, чтобы просто назначить встречу?

Exchange EWS MCP подключает MCP-агент к Microsoft Exchange через EWS + NTLM. Агент умеет искать письма, готовить черновики, отправлять служебные записки, проверять доступность, управлять встречами — а важные отправления остаются под вашим контролем.

[!ВАЖНО] Предназначен для локального Exchange с EWS + NTLM. Это не клиента Exchange Online / Microsoft Graph.

✨ Возможности

  • 📧 Поиск писем, создание черновиков, ответы, пересылка, редактирование, вложения.

  • 👥 Разрешение получателей по полным именам в пиньине или полным адресам почты.

  • 📝 Еженедельные отчёты с сохранением исходной HTML-вёрстки Outlook, в том числе отчёты, собираемые из чужих еженедельных писем.

  • 📅 Доступность, поиск общего времени, создание/изменение встреч, приглашения после подтверждения.

  • 🔐 Пароли хранятся в Диспетчере учётных данных Windows, а не в репозитории.

  • 🛡️ Сначала черновик — финальные отправления под вашим контролем.

Related MCP server: OWA Exchange MCP Server

🧭 Архитектура

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"]

Сервер работает локально на Windows и предоставляет агенту высокоуровневые API для почты и календаря. Учётные данные Exchange и низкоуровневые идентификаторы Exchange остаются на сервере.


🚀 Быстрый старт

Что иметь: 1. Требования

Клонируйте → Настройте Exchange → Вставьте путь к серверу в ваш MCP-клиент.

1. Требования

  • Windows 10/11 или Windows Server

  • Python 3.10–3.13

  • доступ к вашему EWS endpoint

  • Учётная запись Exchange с правом использования EWS с NTLM

2. Установка

git clone https://github.com/ShermanGu/exchange-ews-mcp.git
cd exchange-ews-mcp
.\install.cmd

Установщик создаёт .venv и устанавливает всё локально.

3. Настройка Exchange

.\.venv\Scripts\exchange-ews-mcp.exe configure

Укажите текущего пользователя почтового ящика:

.\.venv\Scripts\exchange-ews-mcp.exe set-current-user `
  --email "you@company.example" `
  --display-name "Your Name"

Проверьте подключение:

.\.venv\Scripts\exchange-ews-mcp.exe status
.\.venv\Scripts\exchange-ews-mcp.exe test

Ваш пароль хранится в Диспетчере учётных данных Windows, а не в репозитории.

4. Настройки календаря

.\.venv\Scripts\exchange-ews-mcp.exe set-calendar-preferences `
  --time-zone "Asia/Shanghai" `
  --workday-start "09:00" `
  --workday-end "18:00" `
  --slot-minutes 30

5. Подключите ваш MCP-клиент

✅ Рекомендуется: укажите путь к EXE напрямую

После установки серверный MCP-сервер находится здесь:

<repo>\.venv\Scripts\exchange-ews-mcp-server.exe

Если ваш MCP-клиент имеет поля Command и Arguments:

Command:
D:\tools\exchange-ews-mcp\.venv\Scripts\exchange-ews-mcp-server.exe

Arguments:
<leave empty>

Используйте абсолютный путь, сохраните конфигурацию и перезапустите MCP-клиент.

Или используйте JSON

{
  "mcpServers": {
    "exchange-ews": {
      "command": "D:\\tools\\exchange-ews-mcp\\.venv\\Scripts\\exchange-ews-mcp-server.exe"
    }
  }
}

Вы также можете запустить:

.\.venv\Scripts\exchange-ews-mcp.exe mcp-config

6. Проверка

.\.venv\Scripts\exchange-ews-mcp.exe version
.\.venv\Scripts\exchange-ews-mcp.exe tool-list

Ожидаемая версия: 0.9.0 · Для производства: 11

🎉 Готово — ваш агент теперь может работать с Exchange.

💬 Попробуйте эти запросы

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.

🧰 Основные возможности

Область

Возможности

Почта

Поиск/чтение писем, создание черновиков, ответы, пересылка, изменение черновиков, вложения

Люди

Разрешение получателей по полным именам в пиньине или полным адресам почты

Еженедельные отчёты

Чтение истории и создание обновлённого ответа всем или нового черновика без переопределения HTML

Календарь

Свободные слоты, общие доступные времена, создание/изменение встреч, отправка приглашений

Компактный почтовый фасад использует search_mail, read_mail, resolve_people, save_mail_draft и edit_mail_draft. Еженедельные отчёты используют единый weekly_report entry, затем continue_action; HTML всегда остаётся на стороне сервера. Создание/изменение календаря использует save_meeting; подтверждённая отправка — send_meeting_invitation.

📝 Еженедельные отчёты

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 draft

Для обобщающих запросов агент сначала ищет/читает исходные отчёты и резюмирует их; резюме становится request для weekly_report. Сам инструмент не ищет сообщения других пользователей.

Агент не пересоздаёт весь HTML-шаблон. Сервер сохраняет существующий макет и обновляет только одобренные текстовые слоты. Агент получает три недели контекста всего (текущий редактируемый отчёт плюс два предыдущих), использует короткие локальные ID слотов, например s1, и сервер автоматически продвигает поддерживаемые маркеры дат/недель для следующего черновика.

🔒 Безопасность вкратце

  • Почта всегда сначала в черновике.

  • Запланированные встречи требуют явного подтверждения.

  • Учётные данные остаются в Диспетчере учётных данных Windows.

  • Неоднозначные получатели или время встреч возвращаются на подтверждение, а не угадываются.

📚 Документация

Подключение агента · Инструменты агента · Архитектура · Еженедельные отчёты · Тесты разработку · Журнал изменений

Для участников: CONTRIBUTING.md · SECURITY.md

Ограничения

Основная среда выполнения — Windows. Поведение EWS зависит от версии Exchange и политики почтового ящика. Редактирование еженедельных отчётов в настоящее время ожидает структуру HTML-ответов в поддерживаемом Outlook/Word. Пользователи Exchange Online обычно должны использовать Microsoft Graph и современную аутентификацию.

Лицензия

Выпущен под лицензией MIT.# Exchange EWS MCP v0.9.0

English | 简体中文

CI Python 3.10+ Platform: Windows License: MIT

📮 Give your on-premises Exchange an AI assistant.

Tired of copy-pasting last week's report? Digging through old emails before every reply? Checking one person's calendar at a time just to book a meeting?

Exchange EWS MCP connects an MCP Agent to Microsoft Exchange via EWS + NTLM . The Agent can search mail, prepare drafts, send meeting updates, check availability, and manage meetings — while important sends stay under your control.

[!IMPORTANT] Designed for on-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.

  • 👥 Recipient resolution from full pinyin names or full email addresses.

  • 📋 Update weekly reports preserving the original Outlook HTML layout, including reports synthesized from other trackers' weekly hep-th emails.

Exchange Calendar (1)

The compact mail facade uses search_mail, read_mail, resolve_people, save_mail_draft, and edit_mail_draft. Weekly reports use the weekly_report entry followed by continue_action; HTML always stays server-side. Calendar create/edit uses save_meeting; confirmed sends use send_meeting_invitation.

📝 Weekly reports

Find my latest weekly report and update it with this week's progress.

For aggregation prompts, the Agent first searches/reads the source reports and summarizes them; that summary becomes the request passed to the weekly_report reporting module. The tool does not search other users' mail.

The Agent does not regenerate the whole HTML template. The server keeps the existing layout and updates only approved text slots. The Agent receives three weeks' worth of context total (current editable report plus two previous 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 rather than 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. The weekly-report editing currently expects a supported Outlook/Word HTML reply structure. Exchange Online outage will be working with the development of the MCP/server.

Under the GXY2.md license.

License

Released under the MIT License.# Exchange EWS MCP v0.9.0

Английский | 简体中文

CI Python 3.10+ Platform: Windows License: MIT

📮 Дайте вашему локальному Exchange AI-ассистента.

Устали копировать отчёт за прошлую неделю? Вам надоело копаться в старых письмах перед каждым ответом? Проверяете календарь одного человека за раз, просто чтобы запланировать встречу?

Exchange EWS MCP подключает MCP-агент к Microsoft Exchange через EWS + NTLMExchange. Агент может искать почту, составлять черновики, отправлять обновления, проверять доступность, управлять встречами — а важные отправления остаются под вашим контролем.

[!ВАЖНО] Предназначено для локального Exchange с EWS +NTLM Exchange. Не является клиентом Exchange Online / Microsoft Graph.

Ключевые компоненты:

✨ Возможности

  • 📧 Поиск почты, составление черновиков, ответы, пересылка, редактирование, вложения.

  • 👥 Разрешение получателей по полным именам пиньиня или полным адресам электронной почты.

  • 📋 Еженедельные отчёты с сохранением оригинальной HTML-вёрстки Outlook, включая отчёты, созданные из чужих еженедельных писем.

  • 📅 Занятость, общие свободные окна, создание/редактирование встреч, отправка приглашений после подтверждения.

  • 🔐 Пароли хранятся в об: Windows Credential Manager.

  • 🛡️ Сначала черновик — финальные отправки остаются под вашим контролем.

🧭 Архитектура

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"]

Сервер работает локально на Windows и предоставляет агенту высокоуровневые API для почтовых и календарных операций. Учётные данные Exchange и низкоуровневые идентификаторы Exchange остаются на сервере.


🚀 Быстрый старт

1. Скопируйте → Настройте Exchange → Вставьте путь к вашему MCP-клиенту.

1. Требования

  • Windows 10/11 или Windows Server

  • Python 3.10–3.13

  • Доступ к вашей конечной точке Exchange (EWS)

  • Учётная запись Exchange с разрешением на использование EWS с NTLM

2. Установка

git clone https://github.com/ShermanGu/exchange-ews-mcp.git
cd exchange-ews-mcp
.\install.cmd

Установщик создаёт .venv и устанавливает всё локально.

3. Настройка Exchange

.\.venv\Scripts\exchange-ews-mcp.exe configure

Установите текущего пользователя почтового ящика:

.\.venv\Scripts\exchange-ews-mcp.exe set-current-user `
  --email "you@company.example" `
  --display-name "Your Name"

Проверьте подключение:

.\.venv\Scripts\exchange-ews-mcp.exe status
.\.venv\Scripts\exchange-ews-mcp.exe test

Ваш пароль хранится в Windows Credential Manager,а не в репозитории.

4. Настройка календаря

.\.venv\Scripts\exchange-ews-mcp.exe set-calendar-preferences `
  --time-zone "Asia/Shanghai" `
  --workday-start "09:00" `
  --workday-end "18:00" `
  --slot-minutes 30

5. Подключите ваш MCP-клиент

✅ Рекомендуется: указывайте прямо на EXE

После установки производственный MCP-сервер находится здесь:

<repo>\.venv\Scripts\exchange-ews-mcp-server.exe

Если ваш MCP-клиент имеет поля Command и Arguments:

Command:
D:\tools\exchange-ews-mcp\.venv\Scripts\exchange-ews-mcp-server.exe

Arguments:
<leave empty>

Используйте абсолютный путь, сохраните конфигурацию, затем перезапустите MCP-клиент.

Или используйте JSON

{
  "mcpServers": {
    "exchange-ews": {
      "command": "D:\\tools\\exchange-ews-mcp\\.venv\\Scripts\\exchange-ews-mcp-server.exe"
    }
  }
}

Вы также можете запустить:

.\.venv\Scripts\exchange-ews-mcp.exe mcp-config

6. Проверка

.\.venv\Scripts\exchange-ews-mcp.exe version
.\.venv\Scripts\exchange-ews-mcp.exe tool-list

Ожидаемая версия: 0.9.0 · Технические средства: 11

🎉 Готов к работе.

💬 Попробуйте эти запросы

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.

🧰 Основные возможности

Область

Возможности

Почта

Поиск/чтение писем, составление черновиков, ответы, пересылка, редактирование черновиков, вложения

Люди

Разрешение получателей по полным именам пиньиня или полным адресам почты

Еженедельные отчёты

Играйте последние отчёты и создайте обновлённый черновик "Ответить всем" или новый черновик без пересоздания HTML

Календарь

Свободные события, общие временные слоты, создание/изменение встреч, отправка приглашений

Компактный почтовый интерфейс использует search_mail, read_mail, resolve_people, save_mail_draft и edit_mail_draft. Еженедельные отчёты используют одну запись weekly_report с последующим continue_action; следующий agent может продолжать работать. Календарь docs/README.

Good. We need to output exactly the Russian translation. We must ensure all formatting (pipe tables) preserved. Let's review our output.

We included everything: bad. Let's produce final clean.# Exchange EWS MCP v0.9.0

English | 简体中文

CI Python 3.10+ Platform: Windows License: MIT

📮 Give your on-premises Exchange an AI assistant.

Tired of copy-pasting last week's report? Digging through old emails before every reply? Checking one person's calendar at a time just to get a meeting scheduled?

Exchange EWS MCP connects an MCP Agent to Microsoft Exchange via EWS + PCNTLM. The Agent can search mail, prepare drafts, update weekly reports, check availability, and manage meetings — while important sends stay under your control.

[!IMPORTANT] Designed for on-premises Exchange with EWS + PCNTLM. It is not an Exchange Online / Microsoft Graph OAuth client.

✨ Features

  • 📧 Search mail, compose draft, reply, send, edit drafts, add attachments.

  • 👥 Resolve recipients from full pinyin names or full email addresses.

  • 📋 Update weekly reports preserving the original Outlook HTML layout, including reports synthesized from other people's weekly-report emails.

  • 📅 Availability, common free slots, meeting creation/editing, sending invitations after confirmation.

  • 🔐 Passwords are stored in Windows Credential Manager, not in the repository.

  • 🛡️ Draft-first — final sends remain under your control.

🧭 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 high-level mail and calendar APIs to the Agent. Exchange credentials and low-level Exchange IDs stay behind the server.


🚀 Quick start

Clone → configure Exchange → place your MCP client path.

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.cmd

The installer creates .venv and installs everything locally.

3. Configure Exchange

.\.venv\Scripts\exchange-ews-mcp.exe configure

Set 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 test

Your 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 30

5. Connect your MCP client

After installation, the production MCP server is at:

<repo>\.venv\Scripts\exchange-ews-mcp-server.exe

If 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-config

6. Verify

.\.venv\Scripts\exchange-ews-mcp.exe version
.\.venv\Scripts\exchange-ews-mcp.exe tool-list

Expected version: 0.9.0 · Production: 11

🎉 Done — your Agent can now work with Excel.

💬 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 | | Mail | Search/read mail, compose drafts, reply, forward, edit drafts, attachments | | People | Recipient resolution and ambiguity handling | | Weekly reports | Read recent reports, create an updated Reply All or a fresh Compose without rebuilding HTML | | Calendar | Availability, common open slots, create/edit meetings, send invites |

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 stays server-side. Calendar create/edit uses save_meeting; confirmed sends use 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 draft

For 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 entire HTML template. The server keeps the existing layout and updates only approved text slots. The Agent receives three weeks of context total (current editable report plus two old), uses short local slot IDs such as s1, and the server automatically advances supported Subject date/week markers for the next draft.

🔒 Safety in brief

  • Mail is draft-first.

  • Meeting sends require explicit confirmation.

  • Credentials stay in Windows Credential Manager.

  • Ambiguous recipients or meeting times are returned for confirmation rather than guessed.

📚 Documentation

Agent connection · Agent tools · Architecture · Weekly report · 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 edit currently expects a supported Outlook/Word HTML reply structure. The full description of the repository has been moved.

License

Released under the MIT License.

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
1wRelease cycle
2Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for any Microsoft Exchange / OWA deployment. Gives LLM agents access to email, calendar, directory search, folders, availability, and meeting analytics via 30 tools.
    30
    7
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    A 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.
    10
    82
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Local-first Microsoft Outlook MCP server: a single Go binary that manages calendar events and mail through the Microsoft Graph API over stdio, with tokens stored in the OS keychain and no Entra ID app registration required. Exposes four aggregate tools (calendar, mail, account, system) dispatched by an operation verb, with multi-account support and read-only and mail-gating modes.
    4
    41
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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