Microsoft 365 MCP Server, publicado por Softeria, conecta asistentes IA con servicios Microsoft 365 y Office mediante Microsoft Graph. El repositorio Softeria/ms-365-mcp-server anuncia más de 300 herramientas mapeadas uno a uno sobre endpoints Graph, con Outlook, Calendar, OneDrive, Excel, OneNote, To Do, Planner, Contacts, Search y, en modo organización, Teams, reuniones, SharePoint, buzones compartidos, presencia y gestión de usuarios. En la verificación de GitHub del 26 de agosto de 2026, el repositorio tenía licencia MIT, 937 estrellas y 359 forks, y package.json indicaba @softeria/ms-365-mcp-server con motor Node >=18.
Para Educasium, Microsoft 365 MCP es el equivalente Microsoft de Google Workspace MCP, pero con un punto técnico central: Microsoft Graph y sus permisos. El reto es explicar usos productivos con sus guardarraíles: solo lectura, presets, scopes permitidos, cuentas múltiples, caché de tokens y distinción entre cuenta personal y organización.
Índice
- Qué hace Microsoft 365 MCP
- Servicios personales y organizacionales
- Autenticación y permisos Graph
- Presets, filtrado y descubrimiento dinámico
- Transporte HTTP, cuentas múltiples y tokens
- JSON, TOON y límites de salida
- Comparación con Google Workspace y Excel MCP
- Posición de Educasium
Qué hace Microsoft 365 MCP
Resumen: Microsoft 365 MCP expone Microsoft Graph a un cliente IA, con más de 300 herramientas anunciadas y superficie controlable por flags. No es solo un plugin Outlook.
Una pasarela Graph
El README dice que cada herramienta corresponde declarativamente a un endpoint en src/endpoints.json. Eso da cobertura amplia: email, calendario, OneDrive, Excel, OneNote, tareas, Planner, contactos, perfil y búsqueda en modo personal; Teams, chats, reuniones, transcripciones, SharePoint, buzones compartidos y gestión de usuarios en modo organización.
Esta amplitud es útil en empresas Microsoft. Un asistente puede encontrar email, leer archivo OneDrive, preparar borrador, listar eventos, consultar tareas o trabajar datos Excel por Graph. Pero cada capacidad debe relacionarse con un permiso Graph preciso.
Node y paquete
El README indica Node.js >=20 recomendado y Node.js 14+ posiblemente funcional con advertencias. package.json declara motor Node >=18, binario ms-365-mcp-server y dependencias como @azure/msal-node, @modelcontextprotocol/sdk, express, helmet, express-rate-limit, winston y zod.
La diferencia debe quedar clara: para uso serio, seguir la recomendación README Node >=20; el campo engines acepta >=18. No presentar Node 14 como objetivo normal.
Servicios personales y organizacionales
Resumen: el modo personal está disponible por defecto; Teams, SharePoint y funciones work/school requieren --org-mode. Esta separación cambia herramientas y permisos.
Modo personal
El README lista como herramientas personales email Outlook, calendario, archivos OneDrive, Excel, OneNote, To Do, Planner, contactos, perfil y búsqueda. Es el perímetro más simple para probar con una cuenta Microsoft personal o uso individual.
Incluso en modo personal, hay que controlar escrituras. Enviar email, modificar archivo o crear tarea no es neutro. El modo read-only es un primer paso prudente.
Modo organización
El modo organización se activa con --org-mode o --work-mode. Abre funciones work/school: Teams y chats, reuniones online, transcripts, attendance reports, SharePoint Sites and Lists, calendarios y buzones compartidos, user management, presence y virtual events.
El README es explícito: --org-mode debe activarse desde el arranque para acceder a esas funciones. Para buzones compartidos hacen falta permisos delegados y derechos Exchange reales del usuario conectado.
Autenticación y permisos Graph
Resumen: MSAL gestiona la autenticación y los permisos se calculan según herramientas activadas. Es el núcleo de la gobernanza.
Flujos disponibles
El README documenta device code flow por defecto, OAuth Authorization Code Flow en HTTP y BYOT para entregar un token OAuth existente. En HTTP, el servidor exige Bearer para peticiones MCP y desactiva login/logout por defecto salvo opción explícita.
Los entornos empresa pueden usar su propia app Azure Entra con MS365_MCP_CLIENT_ID, MS365_MCP_CLIENT_SECRET y MS365_MCP_TENANT_ID. El README señala también que cuentas personales Microsoft pueden necesitar consumers para evitar problemas de refresh token con common.
Permisos y scopes
--list-permissions muestra permisos requeridos para la configuración activa. El README distingue toolPermissions, effectivePermissions, allowedScopes, disabledTools, missingAllowedScopesForTools y extraAllowedScopesNotUsedByTools.
--allowed-scopes y MS365_MCP_ALLOWED_SCOPES reducen superficie: el servidor oculta herramientas cuyos scopes requeridos no están cubiertos. Un valor vacío falla al arrancar en vez de volver a un perímetro más amplio. Es un comportamiento fail-fast importante.
Presets, filtrado y descubrimiento dinámico
Resumen: presets, --enabled-tools, --read-only y --discovery reducen herramientas visibles y tamaño de contexto. Más de 300 herramientas sin filtro rara vez es un buen inicio.
Presets
El README lista presets como mail, calendar, files, personal, work, excel, contacts, tasks, onenote, search, users, outlook, onedrive, teams, teams-write y all. outlook, onedrive y teams están centrados en una app. teams-write permite envío en Teams con lectura reducida.
Estos presets son pedagógicos. Muestran que un MCP no está simplemente instalado o no; está configurado. Un taller puede empezar con --preset mail --read-only y luego ampliar a calendar o files.
Descubrimiento dinámico
--discovery carga herramientas a demanda en vez de exponer todo al inicio. El README lo presenta como forma de reducir contexto y coste, sobre todo en sesiones largas o interfaces con superficie pesada.
Esta opción encaja con Educasium: dar al modelo una superficie legible y ampliarla cuando el caso lo necesita.
Transporte HTTP, cuentas múltiples y tokens
Resumen: el servidor soporta stdio, HTTP OAuth, cuentas múltiples y caché de tokens cifrada; cada uno añade decisiones de seguridad.
Cuentas múltiples
El README explica que una instancia puede servir varias cuentas Microsoft. Cuando hay varias cuentas conectadas, se inyecta un parámetro account en las herramientas. También se puede fijar una cuenta esperada con MS365_MCP_EXPECTED_USERNAME o homeAccountId.
Esto evita lanzar N servidores para N cuentas, pero exige disciplina. En contexto cliente, hay que saber qué cuenta se usa antes de leer datos sensibles o escribir.
Almacenamiento de tokens
Los tokens se guardan en caché cifrada AES-256-GCM, con clave en el credential store del sistema y fallback a archivo. El README detalla rutas por defecto en Windows, macOS y Linux, y comportamiento si el caché no puede descifrarse.
Un MCP de productividad no es solo una lista de herramientas; es un sistema de autenticación que vive en el tiempo, con login, caché, selección de cuenta, logout y recuperación de errores.
JSON, TOON y límites de salida
Resumen: JSON es el formato por defecto; TOON es experimental y busca una reducción de tokens de 30 a 60 % según el README. Esto aplica sobre todo a listas homogéneas.
Formato de salida
El servidor puede devolver JSON estándar o TOON, Token-Oriented Object Notation. El README presenta TOON como útil para reducir tokens en tablas uniformes: listas de emails, eventos, archivos y resultados similares.
Para Educasium conviene presentarlo como optimización, no como requisito. JSON es más familiar, estándar y fácil de depurar. TOON se prueba cuando el volumen es un problema real.
Límites de paginación
MS365_MCP_MAX_TOP, MS365_MCP_MAX_PAGES, MS365_MCP_MAX_ITEMS y MS365_MCP_ALLOW_PAGINATION limitan tamaño de respuestas. Son guardarraíles contra consultas demasiado amplias.
En organización, esos límites evitan que un asistente recupere demasiados datos por error. También mejoran coste, latencia y claridad.
Comparación con Google Workspace y Excel MCP
Resumen: Microsoft 365 MCP es la buena elección para organizaciones Microsoft; Google Workspace MCP para Google; Excel MCP para .xlsx fuera del cloud.
| Necesidad | Microsoft 365 MCP | Google Workspace MCP | Excel MCP |
|---|---|---|---|
| Outlook, Teams, SharePoint | Muy adecuado | Fuera de alcance | Fuera de alcance |
| Gmail, Drive, Docs, Sheets | Fuera de alcance | Muy adecuado | Fuera de alcance |
| .xlsx local sin cuenta cloud | Indirecto | Indirecto | Muy adecuado |
| Gobernanza fina por scopes | Muy adecuado | Muy adecuado | Por raíz de archivos |
| Cuentas múltiples | Documentado | OAuth multiusuario | Solo archivos |
Elegir sin ideología
La elección correcta es el entorno real del cliente. Una empresa Microsoft debe usar Graph y permisos existentes en vez de copiar archivos a un flujo paralelo. Una organización Google debe quedarse en Google Workspace. Un Excel aislado no necesita Graph si Excel MCP basta.
Posición de Educasium
Resumen: Educasium debe enseñar Microsoft 365 MCP como conector empresarial gobernado por scopes Graph. La productividad viene después del permiso.
Qué mostrar
Un taller sano empieza por --list-permissions y --read-only. El alumno ve qué permisos se pedirán, activa un preset estrecho, lee algunos mensajes o archivos y prepara una acción no enviada. Las escrituras llegan solo después de validación humana.
Este método importa más que la demo. Enseña identidad, permisos y ciclo de vida de tokens, que son los verdaderos temas de un MCP Microsoft 365 en producción.