Skip to main content
Glama

Teams MCP Server

El primer conector de Microsoft Teams de código abierto para Claude. Cualquier usuario de Microsoft 365 puede conectarse: solo inicia sesión con tu cuenta de trabajo. Sin configuración, sin credenciales, sin necesidad de autoalojamiento.

Lee mensajes, lista canales, busca en Teams, envía mensajes: todo desde Claude Code, Claude Desktop o Claude Cowork.

Creado por SurgeEnterpriseAI.

Cómo funciona

┌─────────────┐     Click "Connect"     ┌──────────────────────┐
│ Claude User  │ ──────────────────────► │ Teams MCP Server     │
│ (Cowork/     │                         │ (hosted by Surge)    │
│  Desktop/    │     SSE/MCP Protocol    │                      │
│  Code)       │ ◄─────────────────────► │  ┌────────────────┐  │
└─────────────┘                          │  │ OAuth (common)  │  │
                                         │  │ Any M365 user   │  │
       User signs in with their          │  │ can sign in     │  │
       own Microsoft account             │  └───────┬────────┘  │
       ─────────────────────►            │          │           │
                                         │  ┌───────▼────────┐  │
                                         │  │ Microsoft       │  │
                                         │  │ Graph API       │  │
                                         │  └────────────────┘  │
                                         └──────────────────────┘

El usuario conecta su propia cuenta de Microsoft 365. Ve sus propios equipos, sus propios canales, sus propios mensajes. Los tokens de cada usuario están aislados. El servidor es el puente: nunca almacena mensajes, solo los transmite.

Related MCP server: Microsoft 365 MCP Server

Características

  • Conexión en un clic — visita /connect, inicia sesión con Microsoft, listo

  • Multiinquilino — cualquier organización de Microsoft 365, cualquier usuario

  • 11 herramientas — equipos, canales, mensajes, chats, búsqueda, perfil

  • Transporte dual — STDIO para Claude Code, HTTP/SSE para Cowork y remoto

  • Multiusuario — cada sesión obtiene tokens OAuth aislados

  • Detección automática — elige el transporte correcto según el método de lanzamiento

  • Caché de tokens — renovación silenciosa, sin volver a iniciar sesión en cada sesión

  • Lógica de reintentos — reintentos automáticos en llamadas limitadas de Graph API

  • TypeScript — completamente tipado, arquitectura limpia, licencia MIT

Para usuarios: conéctate en 1 clic

Si alguien ya está alojando este servidor (por ejemplo, en https://teams-mcp.surgeai.com):

  1. Claude te pide que conectes Microsoft Teams

  2. Haces clic en el enlace de autenticación

  3. Inicia sesión con tu cuenta de trabajo de Microsoft

  4. Listo: Claude ahora puede leer tus Teams

Sin claves de API, sin portal de Azure, sin configuración.

Para desarrolladores: autoalojamiento

1. Clonar e instalar

git clone https://github.com/SurgeEnterpriseAI/teams-mcp-server.git
cd teams-mcp-server
npm install
npm run build

2. Registro de aplicación de Azure AD

  1. Ve a Azure Portal → Registros de aplicaciones → Nuevo registro

  2. Nombre: Teams MCP Server

  3. Tipos de cuenta admitidos: "Cuentas en cualquier directorio organizativo (cualquier directorio de Azure AD: multiinquilino)"

  4. URI de redirección: Web → https://your-server.com/auth/callback

  5. Haz clic en Registrar

Configura:

  • Certificados y secretos → Nuevo secreto de cliente → copia el Valor

  • Permisos de API → Agregar delegados (Microsoft Graph):

    • ChannelMessage.Read.All, ChannelMessage.Send

    • Chat.Read, Chat.ReadWrite, ChatMessage.Send

    • Team.ReadBasic.All, Channel.ReadBasic.All

    • User.Read

  • Haz clic en Conceder consentimiento de administrador (para tu propio inquilino; otros inquilinos dan su consentimiento en el primer inicio de sesión)

3. Configurar e implementar

cp .env.example .env
# Set TEAMS_CLIENT_ID, TEAMS_CLIENT_SECRET
# Set BASE_URL and REDIRECT_URI to your production URL
# TEAMS_AUTHORITY=common (multi-tenant, default)

Implementa en Railway, Render, Azure App Service o cualquier host de Node.js:

# Railway
railway login && railway init && railway up

# Or Azure
az webapp up --name teams-mcp-server --runtime "NODE:20-lts"

# Or just run directly
TRANSPORT_MODE=http node dist/index.js

4. Enviar al registro de MCP

Una vez implementado y probado, envía la URL de tu servidor al registro de conectores MCP de Anthropic. Los usuarios verán "Microsoft Teams" como una opción de conexión en Claude Cowork, al igual que Slack y Gmail.

Para usuarios de Claude Code: modo STDIO local

Añade a tu .mcp.json:

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

La primera ejecución abrirá tu navegador para iniciar sesión en Microsoft. Después, los tokens se almacenan en caché.

Herramientas disponibles

Herramienta

Qué hace

teams_list_teams

Lista todos tus Teams

teams_list_channels

Lista canales en un equipo

teams_read_channel_messages

Lee mensajes recientes del canal

teams_send_channel_message

Envía un mensaje a un canal

teams_reply_to_message

Responde en un hilo de canal

teams_read_message_replies

Lee respuestas de hilos

teams_list_chats

Lista tus DMs y chats grupales

teams_read_chat_messages

Lee mensajes de un chat

teams_send_chat_message

Envía un mensaje directo/grupal

teams_search_messages

Busca mensajes en todos los Teams

teams_get_profile

Obtén tu perfil de Microsoft 365

Arquitectura

src/
├── index.ts               Main entry (auto-detects transport)
├── config.ts              Central configuration
├── logger.ts              Structured logging
├── types.ts               TypeScript interfaces
├── sessions.ts            Multi-user session manager
├── auth/
│   ├── oauth.ts           MSAL OAuth (multi-tenant, per-user)
│   └── token-store.ts     Persistent token cache
├── graph/
│   ├── client.ts          Graph HTTP client with retries
│   ├── teams.ts           Teams & channels API
│   ├── messages.ts        Channel messages API
│   ├── chats.ts           DM & group chat API
│   └── search.ts          Search & profile API
├── mcp/
│   ├── server.ts          MCP server factory
│   └── tools/             11 tool definitions
├── transport/
│   ├── stdio.ts           STDIO (Claude Code)
│   └── http.ts            Express + SSE (Cowork / remote)

Variables de entorno

Variable

Requerida

Predeterminado

Descripción

TEAMS_CLIENT_ID

Sí

—

ID de cliente de la aplicación de Azure AD

TEAMS_CLIENT_SECRET

Sí

—

Secreto de cliente de Azure AD

TEAMS_AUTHORITY

No

common

common para multiinquilino, o un ID de inquilino específico

TRANSPORT_MODE

No

auto

auto, stdio o http

PORT

No

3000

Puerto del servidor HTTP

BASE_URL

No

http://localhost:3000

URL pública

REDIRECT_URI

No

{BASE_URL}/auth/callback

URL de devolución de llamada OAuth

TOKEN_STORE_PATH

No

./.data/tokens

Directorio de caché de tokens

LOG_LEVEL

No

info

Nivel de registro

Licencia

MIT — LICENSE

Contribuciones

Se aceptan problemas y solicitudes de extracción. Creado por SurgeEnterpriseAI.

Related MCP Connectors

Related MCP Servers