mcp-viva-engage
mcp-viva-engage
Un servidor de código abierto del Protocolo de Contexto de Modelo (MCP) que conecta a Claude AI con Viva Engage (Yammer). Explora las comunidades de tu red doméstica, busca publicaciones, lee conversaciones y publica respuestas, todo a través de una conversación natural con Claude.
Creado por Pranav Joshi
Qué puedes hacer
Una vez conectado, puedes pedirle a Claude cosas como:
"¿A qué comunidades de Viva Engage pertenezco?"
"Busca publicaciones sobre errores de Business Central"
"¿Cuáles son las últimas conversaciones en la comunidad de desarrolladores?"
"Responde a ese hilo con..."
"Muéstrame mi feed de Viva Engage"
Related MCP server: linkedin-mcp-server
Limitación importante: Solo red doméstica
Este servidor MCP funciona solo con tu red doméstica (la red principal de la organización vinculada a tus credenciales de inicio de sesión).
¿Por qué no puede acceder a redes externas?
Viva Engage admite dos tipos de redes:
Red doméstica: tu organización principal (por ejemplo, el Viva Engage de tu empresa)
Redes externas: comunidades alojadas por otras organizaciones de las que eres miembro invitado (por ejemplo, la comunidad de socios de BC de Microsoft)
La API REST de Yammer (www.yammer.com/api/v1) solo devuelve datos de tu red doméstica, independientemente de los parámetros o tokens que se utilicen. Las redes externas requieren cookies de sesión del navegador que solo están disponibles después de un inicio de sesión web completo, algo que no se puede replicar solo mediante llamadas a la API.
La API Graph más reciente de Microsoft (graph.microsoft.com) tampoco admite redes externas; solo funciona con redes en modo nativo dentro de tu propio inquilino.
Esta es una limitación de la API de Microsoft, no una limitación de este servidor MCP. Si Microsoft amplía su API para admitir redes externas en el futuro, este servidor se podrá actualizar para admitirlas.
Cómo funciona
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 questionPrivacidad: Cada usuario registra su propia aplicación de Azure y utiliza sus propias credenciales de Microsoft. Ningún dato pasa nunca por la infraestructura de nadie más. Tu token de inicio de sesión se almacena cifrado solo en tu máquina.
Requisitos previos
Node.js v18 o superior
Una cuenta de trabajo/educativa de Microsoft con acceso a Viva Engage
Paso 1: Registra tu propia aplicación de Azure
Esta es una configuración única (~10 minutos). Registras tu propia aplicación bajo tu propia cuenta de Microsoft. Nadie más puede usar tu aplicación; está vinculada solo a tus credenciales.
Ve a portal.azure.com e inicia sesión con tu cuenta de trabajo/educativa de Microsoft
Busca "App registrations" (Registros de aplicaciones) → haz clic en "+ New registration" (Nuevo registro)
Rellena:
Nombre:
mcp-viva-engage(o lo que prefieras)Tipos de cuenta admitidos:
Multiple Entra ID tenants(Múltiples inquilinos de Entra ID) → seleccionaAllow all tenants(Permitir todos los inquilinos)URI de redirección:
Plataforma =
Public client/native (mobile & desktop)(Cliente público/nativo)URI =
http://localhost
Haz clic en "Register" (Registrar)
En la página de información general, copia y guarda ambos:
Application (client) ID (ID de aplicación)
Directory (tenant) ID (ID de directorio)
Añadir permisos de API
En la barra lateral izquierda, haz clic en "API permissions" (Permisos de API)
Haz clic en "+ Add a permission" (Añadir un permiso) → haz clic en la pestaña "All APIs" (Todas las API) → busca "Yammer"
Haz clic en "Yammer" → haz clic en "Delegated permissions" (Permisos delegados)
Marca estos cuatro permisos:
✅
user_impersonation✅
Community.Read.All✅
EngagementConversation.ReadWrite.All✅
Storyline.ReadWrite.All
Haz clic en "Add permissions" (Añadir permisos)
Nota para cuentas de trabajo/educativas: Es posible que el administrador de TI de tu organización deba otorgar consentimiento para esta aplicación antes de que puedas iniciar sesión por primera vez. Este es un paso único. Puedes enviar una solicitud de aprobación directamente desde la pantalla de inicio de sesión cuando ejecutes el servidor por primera vez.
Paso 2: Clonar y compilar
# Clone the repo
git clone https://github.com/pranav4186/mcp-viva-engage.git
cd mcp-viva-engage
# Install dependencies
npm install
# Build
npm run buildPaso 3: Configura tus credenciales
Copia el archivo env de ejemplo:
# Windows
copy .env.example .env
# Mac/Linux
cp .env.example .envAbre .env y rellena tus valores del Paso 1:
AZURE_CLIENT_ID=your-application-client-id-here
AZURE_TENANT_ID=your-directory-tenant-id-hereImportante: Nunca subas tu archivo
.enva GitHub. Ya está en.gitignorepara evitar esto.
Paso 4: Conectar a Claude Desktop
Abre tu archivo de configuración de Claude Desktop:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonMac:
~/Library/Application Support/Claude/claude_desktop_config.json
Añade el servidor viva-engage a la sección 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"
}
}
}
}Reemplaza
C:/path/to/mcp-viva-engagecon la ruta real donde clonaste el repositorio. Las rutas de Windows pueden usar barras diagonales/o barras diagonales inversas dobles\\.
Cierra y reinicia completamente Claude Desktop después de guardar.
Paso 5: Primer inicio de sesión
La primera vez que le preguntes a Claude algo sobre Viva Engage:
Se abre automáticamente una ventana del navegador con la página de inicio de sesión de Microsoft
Inicia sesión con tu cuenta de trabajo/educativa de Microsoft
Aprueba los permisos
El navegador mostrará "Login successful!" (¡Inicio de sesión correcto!)
Claude completa tu solicitud
Tu sesión se mantiene cifrada en tu máquina. Cuando reinicies Claude Desktop, es posible que debas iniciar sesión de nuevo.
Herramientas disponibles
Herramienta | Descripción |
| Obtener todas las redes de Viva Engage a las que perteneces |
| Listar todas las comunidades en tu red doméstica |
| Obtener detalles de una comunidad específica por ID |
| Obtener todas las publicaciones en una comunidad específica |
| Obtener todos los mensajes en un hilo de conversación |
| Buscar publicaciones en tu red doméstica |
| Publicar un nuevo mensaje en una comunidad |
| Responder a un hilo de conversación existente |
| Obtener tu feed personal de storyline de Viva Engage |
Seguridad y privacidad
🔐 Tu propia aplicación de Azure | Cada usuario registra su propia aplicación: sin infraestructura compartida |
🔐 Tus propias credenciales | Inicias sesión con tu propia cuenta de Microsoft |
🔐 Almacenamiento de tokens cifrado | El token se cifra usando Windows DPAPI (o archivo plano en Mac/Linux) |
🔐 Sin secretos en el código | El ID de cliente y el ID de inquilino permanecen solo en tu archivo |
🔐 Permisos delegados | El servidor solo puede ver lo que ya puedes ver en Viva Engage |
🔐 Contraseña nunca tocada | Microsoft gestiona la autenticación por completo |
Estructura del proyecto
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.mdSolución de problemas
"Aprobación requerida" en el primer inicio de sesión
Tu organización requiere el consentimiento del administrador para nuevas aplicaciones. Pide a tu administrador de TI que apruebe la aplicación en el portal de Azure → Aplicaciones empresariales → busca
mcp-viva-engage→ Conceder consentimiento de administrador. Esta es una acción única.
El servidor no aparece en Claude Desktop
Cierra y reinicia completamente Claude Desktop después de editar el archivo de configuración. Verifica que la ruta a
dist/server.jssea correcta.
Se requiere inicio de sesión de nuevo después de reiniciar
El token cifrado puede haber caducado. Simplemente inicia sesión de nuevo; la sesión se almacenará en caché después de iniciar sesión.
Solo veo comunidades de la red doméstica
Esto es lo esperado; consulta la sección Limitación importante anterior. La API REST de Yammer solo admite el acceso a la red doméstica.
Problemas de ruta en Windows
Usa barras diagonales
C:/path/to/dist/server.jso barras diagonales inversas doblesC:\\path\\to\\dist\\server.jsen el archivo de configuración.
Limitaciones conocidas
Solo red doméstica: las redes externas (por ejemplo, la comunidad de socios de Microsoft BC) no son accesibles a través de ninguna API pública de Microsoft. Consulta la explicación anterior.
Limitación de velocidad: la API de Yammer permite 10 solicitudes por usuario por aplicación cada 30 segundos.
Búsqueda de solo lectura: los resultados de búsqueda se limitan a lo que indexa Viva Engage.
Hoja de ruta
[ ] Convertir en un conector remoto para que los usuarios no necesiten una configuración local
[ ] Añadir soporte de paginación para feeds de comunidades grandes
[ ] Soporte para el Administrador de credenciales de Windows para un almacenamiento de tokens aún más seguro
[ ] Admitir redes externas si Microsoft añade soporte de API en el futuro
Licencia
MIT: consulta LICENSE para obtener más detalles.
Descargo de responsabilidad
Este es un proyecto de código abierto independiente y no está afiliado, respaldado ni apoyado por Microsoft o Viva Engage. Úsalo bajo tu propio riesgo.
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