useful-outlook-mcp
useful-outlook-mcp
Удалённый MCP-сервер для Microsoft Outlook с корректным OAuth2 и инструментами, оптимизированными для агентов.
Возможности
Соответствие спецификациям: метаданные OAuth RFC 9728/8414, динамическая регистрация клиентов RFC 7591
Stateless OAuth: токены управляются клиентом, а не сервером — как и задумано в OAuth
Инструменты, оптимизированные для агентов: обширная инженерия промптов в описаниях инструментов
Динамические области: области OAuth автоматически подстраиваются под включённые инструменты
Готовность к продакшену: Docker, ограничение скорости, режим только для чтения, фильтрация инструментов
Related MCP server: M365 MCP Server
Быстрый старт
npm install
npm run build
npm start # Server at http://localhost:3000Требуемое окружение:
MS365_MCP_CLIENT_ID=your-azure-ad-client-id
MS365_MCP_CLIENT_SECRET=your-azure-ad-client-secret
MS365_MCP_TENANT_ID=your-tenant-id # or 'common'Настройка Azure AD
Портал Azure → Microsoft Entra ID → Регистрация приложений → Создать
Добавьте делегированные разрешения:
User.Read,Mail.Read,Mail.ReadWrite,Mail.Send,Calendars.Read,Calendars.ReadWrite,Calendars.Read.Shared,Place.Read.All,People.Read,offline_accessДобавьте URI перенаправления:
http://localhost:6274/oauth/callback(для MCP Inspector)Сертификаты и секреты → Создать секрет клиента → Скопируйте значение
Скопируйте Client ID, Client Secret и Tenant ID в ваш
.env
Инструменты
Почта
list-mail-folders · list-mail-messages · search-mail · get-mail-message · send-mail · create-draft-mail · reply-mail · reply-all-mail · create-reply-draft · create-reply-all-draft · delete-mail-message · move-mail-message
Календарь
list-calendars · list-calendar-events · search-calendar-events · find-meeting-times · get-calendar-event · get-calendar-view · create-calendar-event · update-calendar-event · delete-calendar-event
Люди
lookup-contact-email
Поиск переговорных
Для очных встреч find-meeting-times автоматически:
Получает все доступные переговорные комнаты в вашей организации
Включает их в проверку доступности вместе с участниками
Группирует свободные комнаты по местоположению (город/здание)
Возвращает только доступные комнаты с адресами электронной почты для бронирования
Установите isOnlineMeeting: false, чтобы включить поиск комнат. Для онлайн-встреч (по умолчанию: true) ссылки на собрания Teams создаются автоматически.
Требуемая область: Place.Read.All (добавьте в разрешения приложения Azure AD)
Конфигурация
Переменная | По умолчанию | Описание |
| обязательно | Идентификатор клиента Azure AD |
| - | Секрет клиента (необязательно) |
|
| Идентификатор клиента |
|
| Порт сервера |
|
| Отключить операции записи |
| все | Разрешённые инструменты (через запятую) |
|
| Источники CORS |
|
| Запросов за окно |
|
| Размер окна (мс) |
| - | Ограничить конкретными клиентами |
Docker
Из GitHub Container Registry:
docker run -p 3000:3000 \
-e MS365_MCP_CLIENT_ID=xxx \
-e MS365_MCP_CLIENT_SECRET=xxx \
-e MS365_MCP_TENANT_ID=xxx \
ghcr.io/Leonine-Studios/useful-outlook-mcp:latestИли соберите локально:
docker build -t useful-outlook-mcp .
docker run -p 3000:3000 \
-e MS365_MCP_CLIENT_ID=xxx \
-e MS365_MCP_CLIENT_SECRET=xxx \
-e MS365_MCP_TENANT_ID=xxx \
useful-outlook-mcpКонечные точки
Конечная точка | Описание |
| Протокол MCP |
| Проверка здоровья |
| RFC 9728 |
| RFC 8414 |
| OAuth (проксирует в Microsoft) |
| Обмен токена (проксирует в Microsoft) |
| Динамическая регистрация клиента |
Тестирование
npm run dev
npx @modelcontextprotocol/inspector # Connect to http://localhost:3000/mcpПримечания по дизайну
Проблемы существующих серверов
Устаревшая архитектура: созданы как stdio с HTTP-надстройкой. Этот сервер изначально HTTP-нативный.
Неправильный OAuth: большинство серверов хранят токены на стороне сервера. Этот сервер не сохраняет состояние — токены передаются в каждом запросе через заголовок Authorization и никогда не хранятся.
Инструменты без продуманности: типичные серверы сопоставляют конечные точки API 1:1 без рекомендаций. Агенты терпят неудачу на практике, потому что не знают особенностей API или многошаговых рабочих процессов.
Что отличается
Каждый инструмент включает:
Когда его использовать по сравнению с альтернативами
Известные особенности Graph API (их много)
Рекомендации по рабочим процессам для многошаговых задач
Комбинации параметров, которые приводят к ошибкам
Пример: find-meeting-times объясняет, что требуются адреса электронной почты (имена не работают), как найти адреса по именам с помощью search-mail, что означает OrganizerUnavailable, и что isOrganizerOptional=true требует подтверждения пользователя.
Известные особенности Graph API
Фильтрация отправителя почты:
eqпоfrom/emailAddress/addressненадёжен — используйтеstartswith()Фильтрация получателей почты: нельзя фильтровать по to/cc/bcc с помощью
$filter— используйте$searchФильтрация организатора календаря:
$filterпо email организатора возвращает 500 — фильтруется на стороне клиентаПараллелизм: параллельные вызовы могут возвращать ошибки
MailboxConcurrencyПоиск и сортировка:
$searchнельзя комбинировать с$orderby
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted MCP server for your Gmail, Outlook and IMAP mail, with mailboxes and scopes set per agent.
An MCP server that provides email capabilities, hosted on Alpic platform
An MCP server that provides email capabilities, hosted on Alpic platform
An MCP server that provides email capabilities, hosted on Alpic platform
Related MCP Servers
- AlicenseBqualityAmaintenanceMCP server that provides 62 tools to manage Outlook mail, calendar, contacts, and tasks for personal Microsoft accounts via Microsoft Graph API.711,021 PyPI40MIT
- AlicenseNot gradedqualityDmaintenanceA secure remote MCP server that integrates Microsoft 365 services with AI assistants, enabling email, calendar, Teams, and contact operations via the Microsoft Graph API.2MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for sending and managing Microsoft Outlook email via the Microsoft Graph API, including drafts, replies, contacts, and directory search.182 npmMIT
- FlicenseNot gradedqualityDmaintenanceMCP server that uses Microsoft Entra OAuth 2.0 On-Behalf-Of flow to access Microsoft Graph for Outlook data, enabling email, calendar, and contacts interactions via MCP tools.-