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 PortalRegistros de aplicacionesNuevo 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: Webhttps://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

ID de cliente de la aplicación de Azure AD

TEAMS_CLIENT_SECRET

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.

A
license - permissive license
Not graded
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

View all related MCP servers

Related MCP Connectors

  • Drive your real WhatsApp inbox from Claude — send, reply, label, assign, and triage via TimelinesAI.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

  • WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.

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/SurgeEnterpriseAI/teams-mcp-server'

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