/ Directorio / Playground / Microsoft Teams
● Comunidad InditexTech 🔑 Requiere tu clave

Microsoft Teams

por InditexTech · InditexTech/mcp-teams-server

Lee canales de Teams, publica mensajes y @-menciona a ingenieros en lenguaje natural — un puente de chat-ops para equipos que viven en Microsoft Teams.

El MCP comunitario de Inditex para Microsoft Teams envuelve la Graph API para permitir a un agente leer mensajes de canales, publicar mensajes/respuestas, @-mencionar usuarios y listar equipos/canales. Requiere registro de aplicación en Azure AD con los scopes de Graph elegidos. Excelente para comunicaciones de incidentes y automatización de standups.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

ms-teams.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "ms-teams": {
      "command": "uvx",
      "args": [
        "mcp-teams-server"
      ]
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "ms-teams": {
      "command": "uvx",
      "args": [
        "mcp-teams-server"
      ]
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "ms-teams": {
      "command": "uvx",
      "args": [
        "mcp-teams-server"
      ]
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "ms-teams": {
      "command": "uvx",
      "args": [
        "mcp-teams-server"
      ]
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "ms-teams",
      "command": "uvx",
      "args": [
        "mcp-teams-server"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "ms-teams": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-teams-server"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add ms-teams -- uvx mcp-teams-server

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: Microsoft Teams

Reflejar un hilo de incidente al estilo de Slack en un canal de Teams

👤 Ops / on-call en organizaciones de Microsoft-shop ⏱ ~30 min advanced

Cuándo usarlo: Sentry dispara un problema crítico; quieres el resumen más @-mención de on-call publicado en tu canal de Teams #incidents.

Requisitos previos
  • Registro de aplicación en Azure AD con scopes de Graph ChannelMessage.Send, Channel.ReadBasic.All, User.Read.All — entra.microsoft.com → App registrations → New, otorga consentimiento del administrador
  • ID de equipo e ID de canal del canal de destino — Haz clic derecho en el canal → Obtener enlace al canal; IDs incrustados en la URL
Flujo
  1. Redacta la alerta
    A partir del problema de Sentry [pega], redacta un resumen de incidente de 3 líneas: qué se rompió, impacto en el usuario, versión sospechosa.✓ Copiado
    → Resumen conciso
  2. Identifica a quién @-mencionar
    ¿Quién está on-call? Resuelve su id de usuario de Teams a partir de su correo electrónico [email]. Devuelve el objeto de mención.✓ Copiado
    → Usuario resuelto + id de AAD
  3. Publica en el canal
    Publica el resumen en el canal <id>, @-mencionando al ingeniero on-call. También publica una respuesta de seguimiento con un enlace al problema de Sentry.✓ Copiado
    → messageId devuelto; visible en Teams

Resultado: Cada incidente recibe un mensaje estructurado en Teams con las personas adecuadas etiquetadas.

Errores comunes
  • Las @-menciones necesitan un objeto mention con id de AAD; el texto plano @name no notifica — Resuelve el id de AAD del usuario a través de Graph primero, pasa al array de menciones del payload del mensaje
  • Se requiere consentimiento del administrador; la aplicación no funcionará hasta que se otorgue el consentimiento en toda la organización — Pide a un administrador de AAD que otorgue consentimiento del administrador para los scopes de tu aplicación
Combinar con: sentry

Publica un resumen diario de standup de ingeniería en un canal de equipo

👤 Líderes técnicos en organizaciones de MS-Teams ⏱ ~20 min intermediate

Cuándo usarlo: Cada mañana: publica 'PRs fusionados ayer + on-call de hoy + P1s abiertos' a #eng-standup.

Flujo
  1. Ensambla el resumen anteriormente
    Extrae los PRs de GitHub fusionados ayer para nuestros repositorios + on-call actual + tickets P1 abiertos. Resume en 8 viñetas.✓ Copiado
    → Contenido del resumen
  2. Publica con formato
    Publica en el canal <id> con encabezados de markdown (Teams admite formato básico en mensajes).✓ Copiado
    → Mensaje visible
  3. Fija el hilo
    Opcionalmente, responde al hilo de standup de ayer marcándolo como obsoleto.✓ Copiado
    → Respuesta publicada

Resultado: Un standup diario predecible en Teams; nadie tiene que ejecutarlo manualmente.

Errores comunes
  • El renderizado de markdown en Teams es limitado — algo de markdown de GitHub se rompe — Usa solo texto plano + negrita + listas; evita tablas y bloques de código anidados
Combinar con: github · linear

Resume lo que sucedió en un canal ocupado mientras estabas fuera

👤 Cualquiera que regrese de PTO o una reunión larga ⏱ ~10 min beginner

Cuándo usarlo: Te perdiste 200 mensajes en #platform y quieres la esencia.

Flujo
  1. Obtén mensajes recientes
    Obtén los últimos 200 mensajes en el canal <id>. Devuelve texto + autor + marca de tiempo.✓ Copiado
    → Flujo de mensajes
  2. Agrupa en temas
    Agrupa mensajes en 3–5 hilos temáticos. Nombra cada tema y lista los puntos clave.✓ Copiado
    → Resúmenes de temas
  3. Marca cualquier cosa dirigida a mí
    Destaca cualquier mensaje que me @-mencione (correo electrónico <email>) o sea una respuesta a mis mensajes pasados. Esos son de lectura obligatoria.✓ Copiado
    → Lista de acciones personales

Resultado: Un resumen de 30 segundos en un canal ruidoso.

Errores comunes
  • Extender hilos largos golpea los límites de tamaño de mensaje — Pagina en lotes de 50; resume por lote antes del rollup final

Enruta preguntas de clientes entrantes al equipo correcto a través de @-menciones

👤 Ops de éxito del cliente ⏱ ~20 min intermediate

Cuándo usarlo: Un socio hace una pregunta técnica en un canal compartido; quieres que se enrute al experto en dominio.

Flujo
  1. Clasifica la pregunta
    Lee este mensaje [pega]. ¿Qué equipo interno es propietario de esto (facturación, integraciones, datos)?✓ Copiado
    → Etiqueta de equipo único
  2. Resuelve el ingeniero correcto
    De nuestra rotación on-call [pega o busca], ¿quién está on-call para ese equipo hoy? Devuelve el id de AAD.✓ Copiado
    → Persona + id de AAD
  3. Responde con la mención
    Responde en el mismo hilo @-mencionando a esa persona y pidiéndole que eche un vistazo.✓ Copiado
    → Respuesta publicada con mención funcionando

Resultado: Las preguntas nunca languidecen sin dueño en un canal compartido.

Errores comunes
  • Enrutar a alguien en PTO es peor que no enrutar — Haz referencias cruzadas con el calendario/fuera de la oficina; escala al respaldo si el principal está fuera

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

ms-teams + sentry

Publica alertas de Sentry en Teams con @-mención a on-call

Para el problema de Sentry <id>, resume y publica en el canal de Teams <id>, mencionando al ingeniero on-call <email>.✓ Copiado
ms-teams + github

Publica solicitudes de revisión de PR de GitHub en Teams

Cuando se abre un PR etiquetado como 'needs-platform-review', publica un mensaje de Teams en #platform con un enlace y @-mención la rotación del revisor.✓ Copiado
ms-teams + monday

Publica actualizaciones de estado de monday.com en un canal de proyecto de Teams

Cada viernes, resume los elementos del tablero de monday <id> movidos esta semana, publica en Teams #proj-atlas.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
list_teams Descubre equipos de los que el bot es miembro 1 Graph call
list_channels team_id Inventaría canales en un equipo 1 Graph call
list_messages team_id, channel_id, top? Lee mensajes de canal recientes 1 Graph call
send_message team_id, channel_id, content, mentions? Publica en un canal 1 Graph call
send_reply team_id, channel_id, message_id, content, mentions? Responde dentro de un hilo existente 1 Graph call
resolve_user email|user_principal_name Antes de construir un objeto de mención 1 Graph call

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Limitación de Microsoft Graph: ~10k solicitudes por 10 min por aplicación por inquilino
Tokens por llamada
Obtención de mensajes de canal: 200–1500 tokens por página.
Monetario
Gratis con una organización de M365 que tiene licencias de Teams.
Consejo
Almacena en caché los IDs de equipo/canal — rara vez cambian. Resuelve los ids de AAD del usuario una vez por correo electrónico y reutiliza.

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: ChannelMessage.Send Channel.ReadBasic.All User.Read.All
Almacenamiento de credenciales: ID de cliente de Azure AD, secreto de cliente, id de inquilino como variables de entorno
Salida de datos: Todas las llamadas a graph.microsoft.com (dentro de tu inquilino)
No conceder nunca: Group.ReadWrite.All Directory.ReadWrite.All

Resolución de problemas

Errores comunes y soluciones

AADSTS70011: Invalid scope

Nombre de scope incorrecto o no otorgado. Se requiere consentimiento del administrador para los scopes de la aplicación Graph.

Verificar: Verifica App Registration → API Permissions → La columna Status debe mostrar 'Granted'
403 Forbidden on sendMessage

La aplicación carece del permiso ChannelMessage.Send, o el usuario no es miembro del equipo.

@-mention doesn't notify the user

Usaste texto plano @name en lugar del array de menciones con id de AAD. Resuelve al usuario primero, luego incluye el objeto de mención.

429 throttled

Demasiadas llamadas a Graph. Retrocede exponencialmente; agrupa cuando sea posible; almacena IDs en caché.

Alternativas

Microsoft Teams vs otros

AlternativaCuándo usarlaContrapartida
Slack MCPEl equipo está en SlackPlataforma diferente; Slack MCP es más simple de autenticar
Power Automate / FlowQuieres automatización sin código dentro de M365Menos flexible para flujos de trabajo impulsados por agentes de IA

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills