Skip to main content
Glama

@developer.k/ms-graph-mcp

Модульный сервер Model Context Protocol для Microsoft Graph и Microsoft 365.

Он использует делегированную аутентификацию с кодом устройства и предоставляет инструменты на Teams, почту Outlook, календарь, Microsoft To Do, контакты, параметры почтового ящика и категории Outlook.

Репозиторий GitHub | npm-пакет

Информацию о выпусках и требованиях к обновлениям см. в журнале изменений.

Возможности

Модуль

Возможности

Graph

Аутентификация по кодом устройства, статус аутентификации, профиль вошедшего пользователя

Teams

Команды, каналы, сообщения каналов, чаты, участники чатов, отправка сообщений в чат самому себе

Mail

Папки, поиск сообщений, вложения, черновики, отправка/ответ/пересылка, флаги, категории, перемещение/удаление, правила папки «Входящие»

Calendar

Календари, представление событий по диапазону дат, события, онлайн‑собрания, приглашения, свободное/занято время, предложенные время встречи

To Do

Списки задач, задачи, повторения, напоминания, выполнение, элементы контрольного списка, связанные ресурсы

Contacts

Папки контактов и контакты, включая обычные личные и деловые поля

Outlook

Параметры почтового ящика, рабочее время, автоподготовок и основные категории

Требования

  • Node.js 18 или новее

  • Регистрация приложения Microsoft Entra с включёнными потоками публичного клиента

  • Делегированные разрешения Microsoft Graph, необходимые используемым вами модулям

  • Почтовый ящик Exchange Online или Outlook.com для почты, календаря, контактов и параметров почтового ящика

  • Лицензия Microsoft 365 или Office 365, включившая Teams, для работы с API чатов и каналов Teams

Инструменты calendar_get_schedule и calendar_find_meeting_times предназначены для рабочих или учебных учётных записей и не поддерживаются для личных учётных записей Microsoft.

Если у вас личная учётная запись Outlook.com, зарегистрируйте приложение, поддерживающее личные учётные записи Microsoft, и укажите MS_TENANT_ID=common.

Следуйте условиям настройки Microsoft Graph API с подсказкой по экранам: регистрация приложения, добавление разрешений и включение потоков публичного клиента.

Делегированные разрешения

Набор областей по умолчанию запрашивает разрешения, необходимые всем включённым модулям:

Модуль

Разрешения

Core

User.Read, offline_access

Teams (начало)

Team.ReadBasic.All, Channel.ReadBasic.All, ChannelMessage.Read.All, ChannelMessage.Send, Chat.Read, ChatMessage.Send

Mail

Mail.ReadWrite, Mail.Send

Calendar

Calendars.ReadWrite, Calendars.ReadWrite.Shared

To Do

Tasks.ReadWrite

Contacts

Contacts.ReadWrite

Настройки Outlook, категории и правила

MailboxSettings.ReadWrite

Некоторые политики тенанта требуют согласия администратора. Когда достаточно только отдельных модулей, используйте MS_GRAPH_SCOPES, чтобы запросить уменьшеalty.

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

Настройте свой MCP-клиент на запуск опубликованного пакета с помощью npx. Значения конфигурации можно помещаться прямо в окно env MCP-клиента; переменные окружения для этого не требуются.

{
  "mcpServers": {
    "ms-graph": {
      "command": "npx",
      "args": ["-y", "@developer.k/ms-graph-mcp"],
      "env": {
        "MS_CLIENT_ID": "your-entra-application-client-id",
        "MS_TENANT_ID": "organizations"
      }
    }
  }
}

Вызовите graph_auth_device_code, откройте полученный URL-адрес входа, введите код устройства и затем вызовите graph_auth_status. После добавления разрешений или если предыдущий поток с кодом устройства истёк, укажите force: true.

Конфигурация

Обязательные параметры:

  • MS_CLIENT_ID — идентификатор приложения (клиента) Microsoft Entra ID.

Необязательные:

  • MS_TENANT_IDorganizations, common или идентификатор каталога (клиента). По умолчанию: organizations.

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

  • MS_GRAPH_TOKEN_CACHE_PATH — локальный путь к кэшу маркеров MSAL.

  • MS_GRAPH_ACCOUNT_USERNAME — кэшированная учётная запись, которую следует выбрать, если доступно несколько учётных записей.

Пример набора областей, ориентированного на чтение:

{
  "env": {
    "MS_CLIENT_ID": "your-entra-application-client-id",
    "MS_TENANT_ID": "organizations",
    "MS_GRAPH_SCOPES": "User.Read Mail.Read Calendars.Read Tasks.Read Contacts.Read MailboxSettings.Read offline_access"
  }
}

Инструменты

Graph:

graph_auth_device_code
graph_auth_status
graph_get_me

Teams:

teams_list_joined_teams
teams_list_channels
teams_list_channel_messages
teams_send_channel_message
teams_list_chats
teams_list_chat_messages
teams_list_chat_members
teams_find_self_chat
teams_send_chat_message
teams_send_self_message

Mail:

mail_list_folders
mail_list_messages
mail_get_message
mail_list_attachments
mail_get_attachment
mail_add_attachment
mail_create_draft
mail_update_draft
mail_create_reply_draft
mail_create_forward_draft
mail_send_draft
mail_send_message
mail_reply
mail_reply_all
mail_forward
mail_update_message
mail_move_message
mail_delete_message
mail_list_rules
mail_create_rule
mail_update_rule
mail_delete_rule

Calendar:

calendar_list_calendars
calendar_get_calendar
calendar_create_calendar
calendar_update_calendar
calendar_delete_calendar
calendar_list_events
calendar_get_event
calendar_create_event
calendar_update_event
calendar_delete_event
calendar_cancel_event
calendar_respond_event
calendar_get_schedule
calendar_find_meeting_times

Microsoft To Do:

todo_list_task_lists
todo_get_task_list
todo_create_task_list
todo_update_task_list
todo_delete_task_list
todo_list_tasks
todo_get_task
todo_create_task
todo_update_task
todo_complete_task
todo_delete_task
todo_list_checklist_items
todo_create_checklist_item
todo_update_checklist_item
todo_delete_checklist_item
todo_list_linked_resources
todo_create_linked_resource
todo_delete_linked_resource

Contacts:

contacts_list_folders
contacts_get_folder
contacts_create_folder
contacts_update_folder
contacts_delete_folder
contacts_list
contacts_get
contacts_create
contacts_update
contacts_delete

Настройки Outlook и категории:

outlook_get_mailbox_settings
outlook_update_mailbox_settings
outlook_set_automatic_replies
outlook_list_categories
outlook_get_category
outlook_create_category
outlook_update_category
outlook_delete_category

Примеры запросов

Show the 10 most recent unread messages in my Inbox.
Find messages containing "quarterly report" and summarize their subjects and senders.
Create a draft reply to this message, but do not send it.
Create a draft email to user@example.com with the subject "Project update".
Send draft MESSAGE_ID after showing me its current recipients and subject.
Move message MESSAGE_ID to folder FOLDER_ID.
Show my calendar events for next week in Asia/Seoul.
Find a 30-minute time when all three attendees are available.
Create a Teams online meeting tomorrow at 2 PM.
Accept event EVENT_ID and send a response.
List my Microsoft To Do task lists.
Add a high-priority task due Friday with a reminder one day earlier.
Add three checklist items to task TASK_ID.
Mark task TASK_ID as completed.
Find the contact with email user@example.com.
Create a business contact in folder FOLDER_ID.
Schedule automatic replies from Monday morning through Friday evening.
Create an Outlook category named "Customer" using preset7.

Прежде чем использовать инструменты отправки почты, предпочтительно использовать инструментами «черновик», чтобы иметь возможность проверить получателей и содержимое. Инструменты отправки, ответа, пересылки, отмены, перемещения и удаления изменяют реальные данные Microsoft 365.

Локальная разработка

Используйте этот раздел только при работе с локальным клонам:

npm install
npm test
{
  "mcpServers": {
    "ms-graph": {
      "command": "node",
      "args": ["/path/to/ms-graph-mcp/build/index.js"],
      "env": {
        "MS_CLIENT_ID": "your-entra-application-client-id",
        "MS_TENANT_ID": "organizations"
      }
    }
  }
}

Структура проекта

src/
|-- auth/
|   +-- msal.ts
|-- graph/
|   +-- client.ts
|-- modules/
|   |-- calendar.ts
|   |-- contacts.ts
|   |-- mail.ts
|   |-- outlook.ts
|   |-- shared.ts
|   |-- teams.ts
|   +-- todo.ts
|-- config.ts
|-- index.ts
|-- tools.ts
+-- types.ts

Текущие ограничения

  • Инструмены работают с ресурсами /me вошедшего пользователя. Общие почтове ящики и общие делегируемые папки пока не доступны.

  • Подписки на webhook не включены, так как stdio-сервер MCP не имеет постоянную открытую конечную точку обратного вызова.

  • Обычные файловые вложения ограничены 3 сМиB. Для более крупных вложений требуется сессия передачи в Microsoft Graph.

  • Фильтрация контактов поддерживает точное совпадение адреса электронной почты — Microsoft Graph не предоставляет общего поиска по имени контактов.

  • Тела событий и сообщений могут содержать внешний HTML, поступающий от Microsoft Graph.

Этот пакет не содержит файлов уemail, идентификаторов объекта, идентификаторов учётных записей или других персональных конфигурационных данных.

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

Related MCP Connectors

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/CodyBuilder-dev/ms-graph-mcp'

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