Teams MCP Server
Servidor MCP y CLI de Microsoft Teams
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
msteamsincluido.
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.
teams_loginabre un navegador para tu inicio de sesión normal de Microsoft.Los tokens OAuth resultantes y los datos de sesión se cifran y se almacenan en caché localmente.
Las operaciones rutinarias usan esos tokens directamente, sin automatización del navegador.
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 buildLuego 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-mcpEsto instala dos binarios: msteams-mcp (el servidor MCP) y msteams (el envoltorio CLI). O ejecútalo sin instalarlo:
npx -y msteams-mcp msteams statusConsulta Uso del CLI para los comandos.
Herramientas disponibles
Búsqueda y descubrimiento
Herramienta | Descripción |
| Busca mensajes de Teams con operadores ( |
| Busca correos electrónicos en tu buzón (misma autenticación que Teams - sin inicio de sesión adicional) |
| Lista conversaciones recientes (1:1, grupales, de reunión, de canal) con vista previa del último mensaje |
| Obtiene un solo mensaje por ID con contenido completo (de cualquier antigüedad); incluye reacciones |
| Obtiene mensajes de una conversación/hilo; incluye reacciones; |
| Encuentra canales por nombre (tus equipos + descubrimiento a nivel de organización) |
| Lista las etiquetas de canal de un equipo para menciones con @ de etiqueta |
| Obtiene el feed de actividad (menciones, reacciones, respuestas, notificaciones) |
Mensajería
Herramienta | Descripción |
| Envía un mensaje (por defecto: chat propio/notas). |
| Bloquea hasta que llegue un nuevo mensaje (sondeo del lado del servidor, máximo ~110s); cursor idempotente |
| Edita uno de tus propios mensajes (se admite |
| Elimina uno de tus propios mensajes (eliminación suave) |
Personas y contactos
Herramienta | Descripción |
| Obtiene el perfil del usuario actual (correo electrónico, nombre, ID) |
| Busca personas por nombre o correo electrónico |
| Obtiene personas contactadas frecuentemente (útil para resolución de nombres) |
| Resuelve uno o más MRIs a perfiles completos (nombre, correo, cargo, departamento) |
| Obtiene el ID de conversación para chat 1:1 con una persona |
| Crea un nuevo chat grupal con varias personas (2 o más) |
Organización
Herramienta | Descripción |
| Obtiene conversaciones fijadas/favoritas |
| Fija una conversación |
| Desfija una conversación |
| Marca un mensaje como guardado |
| Elimina el marcado de guardado de un mensaje |
| Obtiene la lista de mensajes guardados/marcados con referencias de origen |
| Obtiene la lista de hilos seguidos con referencias de origen |
| Obtiene contadores de no leídos (agregados o por conversación) |
| Marca una conversación como leída hasta un mensaje |
Reacciones
Herramienta | Descripción |
| Busca emojis por nombre (emojis estándar + personalizados de la organización) |
| Añade una reacción de emoji a un mensaje |
| 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 |
| Obtiene reuniones del calendario (por defecto los próximos 7 días) |
| Obtiene la transcripción de la reunión (requiere |
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 |
| 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 |
| Activa el inicio de sesión manual (abre el navegador) |
| 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 resultsCombina 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 |
| Perfil del usuario actual |
| Conversaciones fijadas |
| 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" --jsonForma 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_loginpara 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_logincuando sea necesarioAPIs 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_threadpara 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 buildComandos 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 checkingPara 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.
This server cannot be installed
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
- Alicense-qualityDmaintenanceEnables AI assistants to interact with Microsoft 365 through the Microsoft Graph API, including searching Teams messages, managing chats, and sending messages.77MIT
- Alicense-qualityBmaintenanceEnables 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.20MIT
- Alicense-qualityBmaintenanceEnables AI assistants to manage Microsoft Teams through the Graph API, including sending messages, managing chats, creating teams, and searching communications.MIT
- Alicense-qualityDmaintenanceEnables 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
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.
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/m0nkmaster/msteams-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server