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 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
- AlicenseAqualityAmaintenanceMCP server that provides 62 tools to manage Outlook mail, calendar, contacts, and tasks for personal Microsoft accounts via Microsoft Graph API.6222MIT
- AlicenseNot gradedqualityCmaintenanceA 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 gradedqualityBmaintenanceMCP server for sending and managing Microsoft Outlook email via the Microsoft Graph API, including drafts, replies, contacts, and directory search.114MIT
- FlicenseNot gradedqualityCmaintenanceMCP 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.
Related MCP Connectors
The MCP server for Azure DevOps, bringing the power of Azure DevOps directly to your agents.
An authenticated remote MCP server for user-owned devices and one-shot capability invocation.
A paid remote MCP for hosted MCP server, built to return verdicts, receipts, usage logs, and audit-r
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/Andersia7/MCP-outlook'
If you have feedback or need assistance with the MCP directory API, please join our Discord server