# Microsoft 365 Admin

MCP-сервер для администрирования Microsoft 365 через Graph API с application permissions. По умолчанию только чтение.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 17
- Автор: okapi-ca
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/okapi-ca/ms-365-admin-mcp-server
- Обновлён: 2026-10-20
- HTML: https://affpapa.org/nevibecode/mcp/microsoft-365-admin

## Что делает

Сервер даёт агенту доступ к административным операциям Microsoft 365: безопасность, аудит, идентификация, Exchange, Intune, отчёты, eDiscovery, Teams, Defender for Identity и админка Microsoft 365 Copilot. Всего 674 инструмента. Авторизация идёт через application permissions по client credentials, то есть без интерактивного входа пользователя.

По умолчанию сервер работает в режиме только чтения. Запись включается флагом `--allow-writes`, и у инструментов записи есть классификация риска: low, medium, high, critical. Есть пресеты для фильтрации инструментов по домену, два транспорта — stdio и HTTP (StreamableHTTP), поддержка облака Microsoft global и China (21Vianet), а также Azure Key Vault для секретов.

Понадобится Node.js версии 18 или выше, регистрация приложения в Azure AD именно с application permissions, а не delegated, и конкретный tenant ID — значение `common` не подойдёт. Без этих трёх вещей сервер не запустится.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `MS365_ADMIN_MCP_TENANT_ID`, `MS365_ADMIN_MCP_CLIENT_ID`, `MS365_ADMIN_MCP_CLIENT_SECRET`, `MS365_ADMIN_MCP_KEYVAULT_URL`, `MS365_ADMIN_MCP_CLOUD_TYPE`, `MS365_ADMIN_MCP_MAX_TOP`, `READ_ONLY`, `ENABLED_TOOLS` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env MS365_ADMIN_MCP_TENANT_ID=<MS365_ADMIN_MCP_TENANT_ID> --env MS365_ADMIN_MCP_CLIENT_ID=<MS365_ADMIN_MCP_CLIENT_ID> --env MS365_ADMIN_MCP_CLIENT_SECRET=<MS365_ADMIN_MCP_CLIENT_SECRET> --env MS365_ADMIN_MCP_KEYVAULT_URL=<MS365_ADMIN_MCP_KEYVAULT_URL> --env MS365_ADMIN_MCP_CLOUD_TYPE=<MS365_ADMIN_MCP_CLOUD_TYPE> --transport stdio microsoft-365-admin -- npx -y @okapi-ca/ms-365-admin-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add microsoft-365-admin --env MS365_ADMIN_MCP_TENANT_ID=<MS365_ADMIN_MCP_TENANT_ID> --env MS365_ADMIN_MCP_CLIENT_ID=<MS365_ADMIN_MCP_CLIENT_ID> --env MS365_ADMIN_MCP_CLIENT_SECRET=<MS365_ADMIN_MCP_CLIENT_SECRET> --env MS365_ADMIN_MCP_KEYVAULT_URL=<MS365_ADMIN_MCP_KEYVAULT_URL> --env MS365_ADMIN_MCP_CLOUD_TYPE=<MS365_ADMIN_MCP_CLOUD_TYPE> -- npx -y @okapi-ca/ms-365-admin-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "microsoft-365-admin": {
            "command": "npx",
            "args": [
                "-y",
                "@okapi-ca/ms-365-admin-mcp-server"
            ],
            "env": {
                "MS365_ADMIN_MCP_TENANT_ID": "<MS365_ADMIN_MCP_TENANT_ID>",
                "MS365_ADMIN_MCP_CLIENT_ID": "<MS365_ADMIN_MCP_CLIENT_ID>",
                "MS365_ADMIN_MCP_CLIENT_SECRET": "<MS365_ADMIN_MCP_CLIENT_SECRET>",
                "MS365_ADMIN_MCP_KEYVAULT_URL": "<MS365_ADMIN_MCP_KEYVAULT_URL>",
                "MS365_ADMIN_MCP_CLOUD_TYPE": "<MS365_ADMIN_MCP_CLOUD_TYPE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "microsoft-365-admin": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@okapi-ca/ms-365-admin-mcp-server"
            ],
            "env": {
                "MS365_ADMIN_MCP_TENANT_ID": "<MS365_ADMIN_MCP_TENANT_ID>",
                "MS365_ADMIN_MCP_CLIENT_ID": "<MS365_ADMIN_MCP_CLIENT_ID>",
                "MS365_ADMIN_MCP_CLIENT_SECRET": "<MS365_ADMIN_MCP_CLIENT_SECRET>",
                "MS365_ADMIN_MCP_KEYVAULT_URL": "<MS365_ADMIN_MCP_KEYVAULT_URL>",
                "MS365_ADMIN_MCP_CLOUD_TYPE": "<MS365_ADMIN_MCP_CLOUD_TYPE>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e MS365_ADMIN_MCP_TENANT_ID=<MS365_ADMIN_MCP_TENANT_ID> -e MS365_ADMIN_MCP_CLIENT_ID=<MS365_ADMIN_MCP_CLIENT_ID> -e MS365_ADMIN_MCP_CLIENT_SECRET=<MS365_ADMIN_MCP_CLIENT_SECRET> -e MS365_ADMIN_MCP_KEYVAULT_URL=<MS365_ADMIN_MCP_KEYVAULT_URL> -e MS365_ADMIN_MCP_CLOUD_TYPE=<MS365_ADMIN_MCP_CLOUD_TYPE> microsoft-365-admin npx -y @okapi-ca/ms-365-admin-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 3 переменные окружения — в README сервера

## Когда брать
- провести аудит учётных записей и гостевых пользователей в тенанте
- разобрать инцидент безопасности по журналам и advanced hunting
- посмотреть состояние устройств и политик Intune
- выгрузить отчёты об использовании Microsoft 365 Copilot
- найти данные через eDiscovery для юридической выгрузки

## Примеры запросов агенту
- Покажи список гостевых пользователей в тенанте и дату их последнего входа
- Найди все устройства Intune без включённого BitLocker
- Собери отчёт об использовании Microsoft 365 Copilot за прошлый месяц

## Похожие
- [REA](https://affpapa.org/nevibecode/mcp/rea.md) — MCP-сервер · ★ 386989
- [World Monitor](https://affpapa.org/nevibecode/mcp/world-monitor.md) — MCP-сервер · ★ 89408
- [mcp](https://affpapa.org/nevibecode/mcp/kubeshark-mcp.md) — MCP-сервер · ★ 12109

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
