Skip to main content
Glama

Teams MCP Server

Der erste Open-Source-Microsoft-Teams-Connector für Claude. Jeder Microsoft-365-Benutzer kann sich verbinden – einfach mit Ihrem Geschäftskonto anmelden. Keine Einrichtung, keine Anmeldedaten, kein Self-Hosting erforderlich.

Nachrichten lesen, Kanäle auflisten, in Teams suchen, Nachrichten senden – alles von Claude Code, Claude Desktop oder Claude Cowork aus.

Erstellt von SurgeEnterpriseAI.

So funktioniert's

┌─────────────┐     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       │  │
                                         │  └────────────────┘  │
                                         └──────────────────────┘

Der Benutzer verbindet sein eigenes Microsoft-365-Konto. Er sieht seine eigenen Teams, seine eigenen Kanäle, seine eigenen Nachrichten. Die Tokens jedes Benutzers sind isoliert. Der Server ist die Brücke – er speichert nie Nachrichten, sondern leitet sie nur durch.

Related MCP server: Microsoft 365 MCP Server

Funktionen

  • Ein-Klick-Verbindung – Besuchen Sie /connect, melden Sie sich mit Microsoft an, fertig

  • Multi-Tenant – jede Microsoft-365-Organisation, jeder Benutzer

  • 11 Tools – Teams, Kanäle, Nachrichten, Chats, Suche, Profil

  • Dualer Transport – STDIO für Claude Code, HTTP/SSE für Cowork & Remote

  • Multi-Benutzer – jede Sitzung erhält isolierte OAuth-Tokens

  • Automatische Erkennung – wählt den richtigen Transport basierend auf der Startmethode

  • Token-Caching – stilles Aktualisieren, kein erneutes Anmelden bei jeder Sitzung

  • Wiederholungslogik – automatische Wiederholungen bei gedrosselten Graph-API-Aufrufen

  • TypeScript – vollständig typisiert, saubere Architektur, MIT-lizenziert

Für Benutzer: In 1 Klick verbinden

Wenn jemand diesen Server bereits hostet (z. B. auf https://teams-mcp.surgeai.com):

  1. Claude fragt Sie, ob Sie Microsoft Teams verbinden möchten

  2. Sie klicken auf den Authentifizierungslink

  3. Melden Sie sich mit Ihrem Microsoft-Geschäftskonto an

  4. Fertig – Claude kann jetzt Ihre Teams lesen

Keine API-Schlüssel, kein Azure-Portal, keine Einrichtung.

Für Entwickler: Selbst hosten

1. Klonen & Installieren

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

2. Azure AD-App-Registrierung

  1. Gehen Sie zum Azure-PortalApp-RegistrierungenNeue Registrierung

  2. Name: Teams MCP Server

  3. Unterstützte Kontotypen: „Konten in einem beliebigen Organisationsverzeichnis (Beliebiges Azure-AD-Verzeichnis – Multitenant)"

  4. Umleitungs-URI: Webhttps://your-server.com/auth/callback

  5. Klicken Sie auf Registrieren

Konfiguration:

  • Zertifikate & Geheimnisse → Neues Client-Geheimnis → kopieren Sie den Wert

  • API-Berechtigungen → Delegiert hinzufügen (Microsoft Graph):

    • ChannelMessage.Read.All, ChannelMessage.Send

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

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

    • User.Read

  • Klicken Sie auf Administratorzustimmung erteilen (für Ihren eigenen Mandanten; andere Mandanten stimmen bei der ersten Anmeldung zu)

3. Konfigurieren & Bereitstellen

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)

Bereitstellen auf Railway, Render, Azure App Service oder einem beliebigen Node.js-Host:

# 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. Beim MCP-Registry einreichen

Nach der Bereitstellung und dem Testen reichen Sie Ihre Server-URL im MCP-Connector-Registry von Anthropic ein. Benutzer sehen dann „Microsoft Teams" als Verbindungsoption in Claude Cowork – genau wie Slack und Gmail.

Für Claude-Code-Benutzer: Lokaler STDIO-Modus

Fügen Sie zu Ihrer .mcp.json hinzu:

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

Beim ersten Start wird Ihr Browser für die Microsoft-Anmeldung geöffnet. Danach werden Tokens zwischengespeichert.

Verfügbare Tools

Tool

Was es tut

teams_list_teams

Alle Ihre Teams auflisten

teams_list_channels

Kanäle in einem Team auflisten

teams_read_channel_messages

Aktuelle Kanalnachrichten lesen

teams_send_channel_message

Eine Nachricht an einen Kanal senden

teams_reply_to_message

In einem Kanalthread antworten

teams_read_message_replies

Thread-Antworten lesen

teams_list_chats

Ihre Direktnachrichten und Gruppenchats auflisten

teams_read_chat_messages

Nachrichten aus einem Chat lesen

teams_send_chat_message

Eine Direkt-/Gruppenchat-Nachricht senden

teams_search_messages

Nachrichten in allen Teams suchen

teams_get_profile

Ihr Microsoft-365-Profil abrufen

Architektur

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)

Umgebungsvariablen

Variable

Erforderlich

Standard

Beschreibung

TEAMS_CLIENT_ID

Ja

Azure-AD-App-Client-ID

TEAMS_CLIENT_SECRET

Ja

Azure-AD-Client-Geheimnis

TEAMS_AUTHORITY

Nein

common

common für Multi-Tenant oder eine bestimmte Mandanten-ID

TRANSPORT_MODE

Nein

auto

auto, stdio oder http

PORT

Nein

3000

HTTP-Serverport

BASE_URL

Nein

http://localhost:3000

Öffentliche URL

REDIRECT_URI

Nein

{BASE_URL}/auth/callback

OAuth-Rückruf-URL

TOKEN_STORE_PATH

Nein

./.data/tokens

Token-Cache-Verzeichnis

LOG_LEVEL

Nein

info

Protokollierungsstufe

Lizenz

MIT — LICENSE

Mitwirken

Issues und PRs sind willkommen. Erstellt von 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