mcp-viva-engage
mcp-viva-engage
Сервер протокола контекста модели (MCP) с открытым исходным кодом, который подключает Claude AI к Viva Engage (Yammer). Просматривайте сообщества вашей домашней сети, ищите публикации, читайте обсуждения и публикуйте ответы — и все это через естественный диалог с Claude.
Создано Pranav Joshi
Что вы можете делать
После подключения вы можете спрашивать Claude о следующем:
«В каких сообществах Viva Engage я состою?»
«Найди публикации об ошибках в Business Central»
«Какие последние обсуждения были в сообществе разработчиков?»
«Ответь на эту ветку обсуждения так...»
«Покажи мою ленту Viva Engage»
Related MCP server: linkedin-mcp-server
Важное ограничение — только домашняя сеть
Этот MCP-сервер работает только с вашей домашней сетью (основная организационная сеть, привязанная к вашим учетным данным).
Почему он не может получить доступ к внешним сетям?
Viva Engage поддерживает два типа сетей:
Домашняя сеть — ваша основная организация (например, Viva Engage вашей компании)
Внешние сети — сообщества, размещенные другими организациями, в которых вы являетесь гостем (например, сообщество Microsoft BC Partners)
REST API Yammer (www.yammer.com/api/v1) возвращает данные только из вашей домашней сети, независимо от того, какие параметры или токены используются. Для внешних сетей требуются файлы cookie сеанса браузера, которые доступны только после полноценного входа через веб-интерфейс — это невозможно воспроизвести только с помощью вызовов API.
Более новый Graph API от Microsoft (graph.microsoft.com) также не поддерживает внешние сети — он работает только с сетями в собственном режиме внутри вашего клиента.
Это ограничение API Microsoft, а не ограничение данного MCP-сервера. Если в будущем Microsoft расширит свой API для поддержки внешних сетей, этот сервер можно будет обновить для их поддержки.
Как это работает
You ask Claude a question
↓
Claude calls this MCP server
↓
Server calls Viva Engage API using YOUR login
↓
Returns data only YOU can already see
↓
Claude answers your questionКонфиденциальность: Каждый пользователь регистрирует свое собственное приложение Azure и использует свои собственные учетные данные Microsoft. Никакие данные не проходят через инфраструктуру кого-либо еще. Ваш токен входа хранится в зашифрованном виде только на вашем компьютере.
Предварительные требования
Node.js версии 18 или выше
Рабочая/учебная учетная запись Microsoft с доступом к Viva Engage
Шаг 1 — Регистрация собственного приложения Azure
Это разовая настройка (около 10 минут). Вы регистрируете свое собственное приложение под своей учетной записью Microsoft. Никто другой не может использовать ваше приложение — оно привязано только к вашим учетным данным.
Перейдите на portal.azure.com и войдите в систему с помощью своей рабочей/учебной учетной записи Microsoft
Найдите «Регистрация приложений» (App registrations) → нажмите «+ Новая регистрация»
Заполните:
Имя:
mcp-viva-engage(или любое другое на ваш вкус)Поддерживаемые типы учетных записей:
Несколько клиентов Entra ID→ выберитеРазрешить все клиентыURI перенаправления:
Платформа =
Общедоступный клиент/собственный (мобильный и настольный)URI =
http://localhost
Нажмите «Зарегистрировать»
На странице обзора скопируйте и сохраните оба этих значения:
Идентификатор приложения (клиента)
Идентификатор каталога (клиента)
Добавление разрешений API
На левой боковой панели нажмите «Разрешения API»
Нажмите «+ Добавить разрешение» → перейдите на вкладку «Все API» → найдите «Yammer»
Нажмите «Yammer» → нажмите «Делегированные разрешения»
Отметьте эти четыре разрешения:
✅
user_impersonation✅
Community.Read.All✅
EngagementConversation.ReadWrite.All✅
Storyline.ReadWrite.All
Нажмите «Добавить разрешения»
Примечание для рабочих/учебных учетных записей: ИТ-администратору вашей организации может потребоваться предоставить согласие для этого приложения, прежде чем вы сможете войти в систему в первый раз. Это разовый шаг. Вы можете отправить запрос на одобрение прямо с экрана входа при первом запуске сервера.
Шаг 2 — Клонирование и сборка
# Clone the repo
git clone https://github.com/pranav4186/mcp-viva-engage.git
cd mcp-viva-engage
# Install dependencies
npm install
# Build
npm run buildШаг 3 — Настройка учетных данных
Скопируйте пример файла env:
# Windows
copy .env.example .env
# Mac/Linux
cp .env.example .envОткройте .env и вставьте свои значения с Шага 1:
AZURE_CLIENT_ID=your-application-client-id-here
AZURE_TENANT_ID=your-directory-tenant-id-hereВажно: Никогда не добавляйте файл
.envв репозиторий GitHub. Он уже добавлен в.gitignore, чтобы предотвратить это.
Шаг 4 — Подключение к Claude Desktop
Откройте файл конфигурации Claude Desktop:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonMac:
~/Library/Application Support/Claude/claude_desktop_config.json
Добавьте сервер viva-engage в раздел mcpServers:
{
"mcpServers": {
"viva-engage-mcp": {
"command": "node",
"args": ["C:/path/to/mcp-viva-engage/dist/server.js"],
"env": {
"AZURE_CLIENT_ID": "your-application-client-id-here",
"AZURE_TENANT_ID": "your-directory-tenant-id-here"
}
}
}
}Замените
C:/path/to/mcp-viva-engageна фактический путь, по которому вы клонировали репозиторий. В путях Windows можно использовать прямые слэши/или двойные обратные слэши\\.
Полностью закройте и перезапустите Claude Desktop после сохранения.
Шаг 5 — Первый вход
Когда вы впервые спросите Claude что-то о Viva Engage:
Автоматически откроется окно браузера со страницей входа Microsoft
Войдите в систему с помощью своей рабочей/учебной учетной записи Microsoft
Одобрите разрешения
В браузере появится сообщение «Вход выполнен успешно!»
Claude выполнит ваш запрос
Ваш сеанс хранится в зашифрованном виде на вашем компьютере. При перезапуске Claude Desktop может потребоваться войти снова.
Доступные инструменты
Инструмент | Описание |
| Получить все сети Viva Engage, в которых вы состоите |
| Список всех сообществ в вашей домашней сети |
| Получить подробную информацию о конкретном сообществе по ID |
| Получить все публикации в конкретном сообществе |
| Получить все сообщения в ветке обсуждения |
| Поиск публикаций по всей домашней сети |
| Опубликовать новое сообщение в сообществе |
| Ответить на существующую ветку обсуждения |
| Получить вашу личную ленту Viva Engage |
Безопасность и конфиденциальность
🔐 Ваше собственное приложение Azure | Каждый пользователь регистрирует свое приложение — никакой общей инфраструктуры |
🔐 Ваши собственные учетные данные | Вы входите в систему со своей учетной записью Microsoft |
🔐 Зашифрованное хранилище токенов | Токен зашифрован с помощью Windows DPAPI (или обычного файла на Mac/Linux) |
🔐 Никаких секретов в коде | ID клиента и ID арендатора остаются только в вашем локальном файле |
🔐 Делегированные разрешения | Сервер видит только то, что вы уже можете видеть в Viva Engage |
🔐 Пароль не затрагивается | Microsoft полностью берет на себя аутентификацию |
Структура проекта
mcp-viva-engage/
├── src/
│ ├── auth/
│ │ └── auth.ts # Microsoft OAuth login with DPAPI encrypted cache
│ ├── yammerClient.ts # Viva Engage / Yammer API client
│ └── server.ts # MCP server and tool definitions
├── .env.example # Template — copy to .env and fill in your values
├── .gitignore # Prevents .env from being committed
├── package.json
├── tsconfig.json
└── README.mdУстранение неполадок
«Требуется одобрение» при первом входе
Ваша организация требует согласия администратора для новых приложений. Попросите ИТ-администратора одобрить приложение на портале Azure → Корпоративные приложения → найдите
mcp-viva-engage→ Предоставить согласие администратора. Это разовое действие.
Сервер не отображается в Claude Desktop
Полностью закройте и перезапустите Claude Desktop после редактирования файла конфигурации. Убедитесь, что путь к
dist/server.jsуказан верно.
После перезапуска снова требуется вход
Зашифрованный токен мог истечь. Просто войдите снова — сеанс будет кэширован после входа.
Видны только сообщества домашней сети
Это ожидаемое поведение — см. раздел Важное ограничение выше. REST API Yammer поддерживает доступ только к домашней сети.
Проблемы с путями в Windows
Используйте прямые слэши
C:/path/to/dist/server.jsили двойные обратные слэшиC:\\path\\to\\dist\\server.jsв файле конфигурации.
Известные ограничения
Только домашняя сеть — Внешние сети (например, сообщество Microsoft BC Partners) недоступны через какой-либо публичный API Microsoft. См. объяснение выше.
Ограничение частоты запросов — API Yammer разрешает 10 запросов на пользователя на приложение каждые 30 секунд.
Поиск только для чтения — Результаты поиска ограничены тем, что индексирует Viva Engage.
Дорожная карта
[ ] Преобразовать в удаленный коннектор, чтобы пользователям не требовалась локальная настройка
[ ] Добавить поддержку пагинации для больших лент сообществ
[ ] Поддержка Диспетчера учетных данных Windows для еще более безопасного хранения токенов
[ ] Поддержка внешних сетей, если Microsoft добавит поддержку API в будущем
Лицензия
MIT — подробности см. в LICENSE.
Отказ от ответственности
Это независимый проект с открытым исходным кодом, который не связан, не одобрен и не поддерживается Microsoft или Viva Engage. Используйте на свой страх и риск.
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
- AlicenseNot gradedqualityNot gradedmaintenanceEnables sending and receiving Instagram Direct Messages, managing conversations, downloading media, viewing user profiles and stories, and interacting with posts through natural language in Claude.
- AlicenseAqualityDmaintenanceEnables Claude Desktop to manage your LinkedIn profile and company pages, including posting, reading posts, and fetching profile information.71774MIT
- AlicenseAqualityDmaintenanceEnables Claude to interact with LinkedIn for posting, commenting, sharing media, and viewing feed and profile.91773MIT
- AlicenseNot gradedqualityBmaintenanceConnects Claude with Microsoft 365 services such as Email, Calendar, Teams, OneDrive, and more through the Microsoft Graph API.4616MIT
Related MCP Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Drive your real WhatsApp inbox from Claude — send, reply, label, assign, and triage via TimelinesAI.
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/pranav4186/mcp-viva-engage'
If you have feedback or need assistance with the MCP directory API, please join our Discord server