Skip to main content
Glama
mainpart

owa-mail-mcp

by mainpart

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
-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (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.

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/mainpart/owa-mail-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server