Skip to main content
Glama
m0nkmaster
by m0nkmaster

Servidor MCP y CLI de Microsoft Teams

CI npm version npm downloads License: MIT Node.js

Dale acceso a la IA a Microsoft Teams fácilmente con tu inicio de sesión estándar de Teams.

[!NOTE]

No se requiere configuración de Azure, registro de aplicaciones, permisos de Graph ni soporte de TI.

Busca mensajes y correos electrónicos, ponte al día con chats no leídos, lee hilos, envía respuestas, recupera transcripciones de reuniones y mucho más.

¿Por qué msteams-mcp?

  • Haz trabajo real - búsqueda, chats no leídos, hilos, respuestas, personas, canales, reuniones, transcripciones, archivos, reacciones y más.

  • Inicia sesión una vez - los tokens se renuevan automáticamente y el navegador se mantiene fuera de las operaciones rutinarias.

  • Seguro - el asistente solo tiene tus permisos existentes de Teams, con datos de sesión cifrados almacenados localmente.

  • Úsalo en cualquier lugar - todas las capacidades funcionan tanto a través de clientes MCP como del CLI msteams incluido.

Related MCP server: teams-mcp

Inicio rápido

Requisitos previos

  • Node.js 18+

  • Una cuenta de Microsoft con acceso a Teams

  • Google Chrome, Microsoft Edge o navegador Chromium instalado

Configura tu cliente MCP

Añade a la configuración de tu cliente MCP (por ejemplo, Claude Desktop, Windsurf, Cursor):

{
  "mcpServers": {
    "teams": {
      "command": "npx",
      "args": ["-y", "msteams-mcp@latest"]
    }
  }
}

Eso es todo. npx descarga y ejecuta la última versión. Pide a tu asistente que llame a teams_login una vez, completa el inicio de sesión normal de Microsoft en el navegador y luego comienza a usar Teams.

Cómo funciona

Este servidor llama directamente a los servicios de Teams de Microsoft (Substrate, chatsvc, CSA), utilizando la sesión autenticada creada por la aplicación web de Teams.

  1. teams_login abre un navegador para tu inicio de sesión normal de Microsoft.

  2. Los tokens OAuth resultantes y los datos de sesión se cifran y se almacenan en caché localmente.

  3. Las operaciones rutinarias usan esos tokens directamente, sin automatización del navegador.

  4. Los tokens que expiran se renuevan automáticamente por HTTP, con SSO de navegador sin interfaz gráfica como respaldo.

Tu acceso permanece limitado a lo que tu cuenta de Teams ya puede ver y hacer.

Desde el código fuente (alternativa)

Si prefieres ejecutar desde un clon local:

git clone https://github.com/m0nkmaster/msteams-mcp.git
cd msteams-mcp
npm install && npm run build

Luego configura tu cliente MCP:

{
  "mcpServers": {
    "teams": {
      "command": "node",
      "args": ["/path/to/msteams-mcp/dist/index.js"]
    }
  }
}

El servidor usa el Chrome de tu sistema (macOS/Linux) o Edge (Windows) para la autenticación.

CLI

La misma funcionalidad también está disponible como herramienta de línea de comandos independiente, msteams. Esto es útil cuando quieres Teams desde un shell o script en lugar de un cliente MCP.

Instálalo globalmente desde npm:

npm install -g msteams-mcp

Esto instala dos binarios: msteams-mcp (el servidor MCP) y msteams (el envoltorio CLI). O ejecútalo sin instalarlo:

npx -y msteams-mcp msteams status

Consulta Uso del CLI para los comandos.

Herramientas disponibles

Búsqueda y descubrimiento

Herramienta

Descripción

teams_search

Busca mensajes de Teams con operadores (from:, sent:, in:, hasattachment:, etc.)

teams_search_email

Busca correos electrónicos en tu buzón (misma autenticación que Teams - sin inicio de sesión adicional)

teams_list_chats

Lista conversaciones recientes (1:1, grupales, de reunión, de canal) con vista previa del último mensaje

teams_get_message

Obtiene un solo mensaje por ID con contenido completo (de cualquier antigüedad); incluye reacciones

teams_get_thread

Obtiene mensajes de una conversación/hilo; incluye reacciones; threadRootId limita a un hilo de canal; fromUrl acepta un enlace profundo de mensaje de Teams

teams_find_channel

Encuentra canales por nombre (tus equipos + descubrimiento a nivel de organización)

teams_get_tags

Lista las etiquetas de canal de un equipo para menciones con @ de etiqueta

teams_get_activity

Obtiene el feed de actividad (menciones, reacciones, respuestas, notificaciones)

Mensajería

Herramienta

Descripción

teams_send_message

Envía un mensaje (por defecto: chat propio/notas). replyToMessageId para respuestas en hilos, subject para un nuevo hilo de canal, scheduleAt para programar, contentType (auto/text/html/markdown) para controlar el formato

teams_wait_for_reply

Bloquea hasta que llegue un nuevo mensaje (sondeo del lado del servidor, máximo ~110s); cursor idempotente after/nextAfter - combínalo con teams_send_message

teams_edit_message

Edita uno de tus propios mensajes (se admite contentType)

teams_delete_message

Elimina uno de tus propios mensajes (eliminación suave)

Personas y contactos

Herramienta

Descripción

teams_get_me

Obtiene el perfil del usuario actual (correo electrónico, nombre, ID)

teams_search_people

Busca personas por nombre o correo electrónico

teams_get_frequent_contacts

Obtiene personas contactadas frecuentemente (útil para resolución de nombres)

teams_get_person

Resuelve uno o más MRIs a perfiles completos (nombre, correo, cargo, departamento)

teams_get_chat

Obtiene el ID de conversación para chat 1:1 con una persona

teams_create_group_chat

Crea un nuevo chat grupal con varias personas (2 o más)

Organización

Herramienta

Descripción

teams_get_favorites

Obtiene conversaciones fijadas/favoritas

teams_add_favorite

Fija una conversación

teams_remove_favorite

Desfija una conversación

teams_save_message

Marca un mensaje como guardado

teams_unsave_message

Elimina el marcado de guardado de un mensaje

teams_get_saved_messages

Obtiene la lista de mensajes guardados/marcados con referencias de origen

teams_get_followed_threads

Obtiene la lista de hilos seguidos con referencias de origen

teams_get_unread

Obtiene contadores de no leídos (agregados o por conversación)

teams_mark_read

Marca una conversación como leída hasta un mensaje

Reacciones

Herramienta

Descripción

teams_search_emoji

Busca emojis por nombre (emojis estándar + personalizados de la organización)

teams_add_reaction

Añade una reacción de emoji a un mensaje

teams_remove_reaction

Elimina una reacción de emoji de un mensaje

Reacciones rápidas: like, heart, laugh, surprised, sad, angry se pueden usar directamente sin buscar.

Calendario y reuniones

Herramienta

Descripción

teams_get_meetings

Obtiene reuniones del calendario (por defecto los próximos 7 días)

teams_get_transcript

Obtiene la transcripción de la reunión (requiere threadId de teams_get_meetings)

teams_get_meetings devuelve: asunto, horarios, organizador, URL de unión, threadId para el chat de la reunión. Usa threadId con teams_get_thread para leer el chat de la reunión, o con teams_get_transcript para obtener la transcripción completa con oradores y marcas de tiempo.

Archivos

Herramienta

Descripción

teams_get_shared_files

Obtiene archivos y enlaces compartidos en una conversación (admite paginación)

Devuelve tanto archivos (nombre, extensión, URL, tamaño) como enlaces (URL, título), junto con quién compartió cada elemento. Funciona para canales, chats grupales, chats 1:1 y chats de reuniones.

Sesión

Herramienta

Descripción

teams_login

Activa el inicio de sesión manual (abre el navegador)

teams_status

Verifica el estado de autenticación y sesión

Operadores de búsqueda

Tanto teams_search (mensajes de Teams) como teams_search_email (correos electrónicos) admiten operadores nativos:

from:sarah@company.com     # Messages/emails from person
sent:2026-01-20            # From specific date
sent:>=2026-01-15          # Since date
in:project-alpha           # Messages in channel (Teams only)
subject:"budget"           # By subject (email)
"Rob Smith"                # Find @mentions (name in quotes)
hasattachment:true         # With files
is:unread                  # Unread emails (email only)
NOT from:email@co.com      # Exclude results

Combina operadores: from:sarah@co.com sent:>=2026-01-18 hasattachment:true

Nota: @me, from:me, to:me NO funcionan. Usa teams_get_me primero para obtener tu correo electrónico/nombre para mostrar. sent:today funciona, pero sent:lastweek y sent:thisweek NO - usa fechas explícitas u omítelos (los resultados se ordenan por actualidad).

Recursos MCP

El servidor también expone recursos pasivos para el descubrimiento de contexto:

URI de recurso

Descripción

teams://me/profile

Perfil del usuario actual

teams://me/favorites

Conversaciones fijadas

teams://status

Estado de autenticación

Uso del CLI

msteams expone todas las herramientas que el servidor MCP - paridad total, misma autenticación, mismos archivos de sesión. Ejecútalo sin argumentos para listar todas las herramientas y accesos directos.

Si lo instalaste globalmente (npm install -g msteams-mcp), invócalo directamente:

# List available tools and shortcuts
msteams

# Check authentication status
msteams status

# Log in (opens a browser; tries silent SSO first)
msteams login
msteams login --force        # clear session and re-login

# Search messages
msteams search "meeting notes"
msteams search "project" --from 0 --size 50

# Search emails
msteams teams_search_email --query "from:sarah@company.com"

# Send a message (default: your own notes/self-chat)
msteams send "Hello from Teams MCP!"
msteams send "Message" --to "conversation-id"

# People, contacts, favourites, activity, unread
msteams people "john smith"
msteams favorites
msteams activity
msteams unread

# Any tool by name (the teams_ prefix is optional)
msteams teams_search_emoji --query "heart"
msteams find_channel --query "support"

# Machine-readable output
msteams search "query" --json

Forma del comando: msteams <comando> [argumentoPrincipal] [--clave valor ...]. Cualquier comando no reconocido se trata como nombre de herramienta (teams_ se añade automáticamente). Las banderas comunes como --to, --from, --size, --query, --force se asignan a los parámetros de herramienta correspondientes; ejecuta msteams sin argumentos para ver la lista completa.

Desde un clon del repositorio

Si trabajas desde el código fuente, el mismo CLI está conectado a npm run cli (se ejecuta vía tsx, sin necesidad de compilación):

npm run cli                          # list tools
npm run cli -- search "your query"
npm run cli -- status
npm run cli -- send "Hi" --to "conversation-id"

Limitaciones

  • Inicio de sesión requerido - Ejecuta teams_login para autenticarte (abre el navegador)

  • Caducidad del token - Los tokens caducan después de ~1 hora; se intenta una renovación sin interfaz gráfica o vuelve a ejecutar teams_login cuando sea necesario

  • APIs no documentadas - Utiliza APIs internas de Microsoft que pueden cambiar sin previo aviso

  • Limitaciones de búsqueda - Solo búsqueda de texto completo; las respuestas del hilo que no coincidan con los términos de búsqueda no aparecerán (pero el LLM probablemente usará teams_get_thread para el contexto completo)

Archivos de sesión

Los archivos de sesión se almacenan en un directorio de configuración de usuario (cifrado):

  • macOS/Linux: ~/.teams-mcp-server/

  • Windows: %APPDATA%\teams-mcp-server\

Contenido: session-state.json, token-cache.json, browser-profile/

Si tu sesión caduca, ejecuta teams_login o elimina el directorio de configuración.

Desarrollo

Para desarrollo local:

git clone https://github.com/m0nkmaster/msteams-mcp.git
cd msteams-mcp
npm install
npm run build

Comandos de desarrollo:

npm run dev          # Run MCP server in dev mode
npm run build        # Compile TypeScript
npm run lint         # Run ESLint
npm test             # Run unit tests
npm run typecheck    # TypeScript type checking

Para desarrollo con recarga en caliente, configura tu cliente MCP:

{
  "mcpServers": {
    "teams": {
      "command": "npx",
      "args": ["tsx", "/path/to/msteams-mcp/src/index.ts"]
    }
  }
}

Consulta AGENTS.md para obtener la arquitectura detallada y las pautas de contribución.

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity
Issues opened vs closed

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

  • A
    license
    -
    quality
    B
    maintenance
    Enables AI assistants to interact with Microsoft Teams, users, chats, files, and organizational data via Microsoft Graph APIs, with added support for creating, updating, listing, and inspecting Teams meetings and calendar events.
    20
    MIT
  • A
    license
    -
    quality
    D
    maintenance
    Enables AI assistants to interact with Microsoft Teams, users, and organizational data via Microsoft Graph APIs, including sending messages, managing chats and channels, and searching messages.
    MIT

View all related MCP servers

Related MCP Connectors

  • Phone, SMS & email for AI agents — one remote MCP endpoint, OAuth login, zero install.

  • Voice and chat for AI agents — Discord, Teams, Meet, Slack, Zoom, Telegram, WhatsApp, NC Talk, SIP

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

View all MCP Connectors

Latest Blog Posts

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/m0nkmaster/msteams-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server