owa-mail-mcp
MCP server for corporate Exchange that provides access to email, calendar, and people directory via OWA JSON API.
README
owa-mail-mcp
MCP-сервер к корпоративному Exchange: почта, календарь, справочник людей.
Наружу Exchange отдаёт только /owa/ (EWS SOAP, MAPI, IMAP/SMTP закрыты), поэтому
сервер работает через OWA JSON API (/owa/service.svc) — тот же протокол, что и
веб-клиент OWA, — поверх NTLM.
Подключение
Конфиг MCP-клиента:
{
"mcpServers": {
"owa-mail": {
"command": "uvx",
"args": ["--from", "git+https://github.com/mainpart/owa-mail-mcp.git", "owa-mail-mcp"],
"env": {
"EXCHANGE_USERNAME": "DOMAIN\\user",
"EXCHANGE_PASSWORD": "..."
}
}
}
}
Локальный запуск из клона: uv sync && uv run owa-mail-mcp.
Переменные окружения
| Переменная | Обяз. | Дефолт | Назначение |
|---|---|---|---|
EXCHANGE_USERNAME |
да | — | учётка NTLM, DOMAIN\user |
EXCHANGE_PASSWORD |
да | — | пароль |
EXCHANGE_OWA_URL |
https://owa.example.com |
хост OWA | |
EXCHANGE_COOKIE_FILE |
~/.config/owa-mail-mcp/cookies |
кэш сессии (0600), пишется сервером | |
EXCHANGE_VERIFY_SSL |
false |
true — строгая проверка TLS |
|
EXCHANGE_ATTACHMENT_DIR |
/tmp/attachments |
куда сохраняются вложения | |
EXCHANGE_TIME_ZONE |
Russian Standard Time |
Windows-зона для TimeZoneContext |
|
EXCHANGE_LOG_LEVEL |
INFO |
уровень логов (в stderr) | |
MCP_ENABLED_TOOLS |
20 тулов | allowlist видимых тулов (см. «Конфиг») | |
MCP_TRANSPORT / MCP_HOST / MCP_PORT |
stdio |
транспорт |
Методы
Служебное:
| Метод | Что делает |
|---|---|
owa_check_auth |
Жив ли сеанс OWA — делает лёгкий запрос к ящику, возвращает {authenticated, user, owa_url} или not_authenticated |
Почта:
| Метод | Что делает |
|---|---|
owa_get_folders |
Папки с id, счётчиками и непрочитанными |
owa_find_emails |
Список папки или полнотекстовый поиск (query, granularity=threads|messages) |
owa_get_email |
Письмо целиком: тело, получатели, id вложений, ссылки (include_links) |
owa_get_thread |
Вся переписка по письму или conversation_id |
owa_send_email |
Отправить письмо или сохранить черновик (draft) |
owa_reply_email |
Ответить / ответить всем (reply_all) |
owa_forward_email |
Переслать письмо с вложениями |
owa_delete_email |
Удалить (в «Удалённые» или hard_delete) |
owa_mark_email_read ⚙ |
Пометить прочитанным / непрочитанным |
owa_move_email ⚙ |
Переместить письмо в папку |
Календарь:
| Метод | Что делает |
|---|---|
owa_get_calendar_events |
События за период (start/end/limit/offset), свои или чужие (person) |
owa_get_event |
Событие целиком: тело, участники, статусы ответов |
owa_get_calendars |
Какие календари видны и какие из них реально читаются |
owa_get_user_availability |
Занятость человека с темами встреч — даже без доступа к папке |
owa_find_meeting_time |
Свободные для всех слоты в рабочих часах |
owa_create_event |
Создать событие или серию, разослать приглашения |
owa_update_event |
Изменить событие и уведомить участников (apply_to для серий) |
owa_cancel_event |
Отменить своё событие (apply_to для серий) |
owa_respond_to_event |
Принять / отклонить / под вопросом (comment, notify_organizer, apply_to) |
Люди, вложения, автоответчик:
| Метод | Что делает |
|---|---|
owa_find_people |
Справочник: имя/логин/адрес → адрес; при одном совпадении — полная карточка (должность, отдел, телефоны); details раскрывает несколько |
owa_get_attachment |
Скачать вложение на диск |
owa_get_oof ⚙ |
Прочитать настройки автоответчика |
owa_set_oof ⚙ |
Включить / выключить / по расписанию |
⚙ — выключены по умолчанию, включаются через MCP_ENABLED_TOOLS.
Конфиг
MCP_ENABLED_TOOLS полностью заменяет дефолт — перечисляйте ровно то, что нужно;
пустая строка выключает все тулы.
Включить всё (24 тула):
owa_check_auth,owa_get_folders,owa_find_emails,owa_get_email,owa_get_thread,owa_send_email,owa_reply_email,owa_forward_email,owa_delete_email,owa_mark_email_read,owa_move_email,owa_get_calendar_events,owa_get_event,owa_get_calendars,owa_get_user_availability,owa_find_meeting_time,owa_create_event,owa_update_event,owa_cancel_event,owa_respond_to_event,owa_get_attachment,owa_find_people,owa_get_oof,owa_set_oof
Только чтение:
owa_check_auth,owa_get_folders,owa_find_emails,owa_get_email,owa_get_thread,owa_get_calendar_events,owa_get_event,owa_get_calendars,owa_get_user_availability,owa_find_people
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.