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-Portal → App-Registrierungen → Neue Registrierung

  2. Name: Teams MCP Server

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

  4. Umleitungs-URI: Web → https://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.

Related MCP Connectors

Related MCP Servers