Skip to main content
Glama

Teams MCP Server

Claude 向けの最初のオープンソース Microsoft Teams コネクタです。Microsoft 365 ユーザーなら誰でも接続できます — 職場のアカウントでサインインするだけです。セットアップ不要、資格情報不要、セルフホスティング不要です。

メッセージの読み取り、チャネルの一覧表示、Teams 全体の検索、メッセージの送信 — すべて Claude Code、Claude Desktop、または Claude Cowork から行えます。

開発者: SurgeEnterpriseAI.

仕組み

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

ユーザーは自分の Microsoft 365 アカウントを接続します。 自分のチーム、自分のチャネル、自分のメッセージが表示されます。各ユーザーのトークンは分離されています。サーバーはブリッジであり、メッセージを保存せず、単に通過させるだけです。

Related MCP server: Microsoft 365 MCP Server

機能

  • ワンクリック接続/connect にアクセスし、Microsoft でサインインするだけ

  • マルチテナント — 任意の Microsoft 365 組織、任意のユーザー

  • 11 のツール — チーム、チャネル、メッセージ、チャット、検索、プロフィール

  • デュアルトランスポート — Claude Code 用の STDIO、Cowork およびリモート用の HTTP/SSE

  • マルチユーザー — 各セッションに分離された OAuth トークンが付与されます

  • 自動検出 — 起動方法に基づいて適切なトランスポートを選択

  • トークンキャッシュ — サイレント更新、セッションごとの再ログイン不要

  • 再試行ロジック — スロットルされた Graph API 呼び出しの自動再試行

  • TypeScript — 完全に型付けされ、クリーンなアーキテクチャ、MIT ライセンス

ユーザー向け: 1クリックで接続

誰かがこのサーバーを既にホストしている場合 (例: https://teams-mcp.surgeai.com):

  1. Claude が Microsoft Teams への接続を求めます

  2. 認証リンクをクリックします

  3. Microsoft の職場アカウントでサインインします

  4. 完了 — Claude があなたの Teams を読み取れるようになります

API キー不要、Azure ポータル不要、セットアップ不要です。

開発者向け: セルフホスト

1. クローンとインストール

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

2. Azure AD アプリ登録

  1. Azure Portal に移動 → アプリの登録新規登録

  2. 名前: Teams MCP Server

  3. サポートされるアカウントの種類: "任意の組織ディレクトリ内のアカウント (任意の Azure AD ディレクトリ - マルチテナント)"

  4. リダイレクト URI: Webhttps://your-server.com/auth/callback

  5. 登録 をクリック

設定:

  • 証明書とシークレット → 新しいクライアント シークレット → 値をコピー

  • API のアクセス許可 → 委任されたアクセス許可を追加 (Microsoft Graph):

    • ChannelMessage.Read.All, ChannelMessage.Send

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

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

    • User.Read

  • 管理者の同意を付与 をクリック (自分のテナント用; 他のテナントは初回ログイン時に同意)

3. 設定とデプロイ

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)

Railway、Render、Azure App Service、または任意の 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. MCP レジストリに提出

デプロイとテストが完了したら、サーバー URL を Anthropic の MCP コネクタレジストリに提出してください。すると、ユーザーは Claude Cowork の接続オプションとして "Microsoft Teams" を表示できるようになります — Slack や Gmail と同じように。

Claude Code ユーザー向け: ローカル STDIO モード

.mcp.json に追加:

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

初回実行時には、Microsoft ログインのためにブラウザが開きます。その後はトークンがキャッシュされます。

利用可能なツール

ツール

説明

teams_list_teams

自分のすべての Teams を一覧表示

teams_list_channels

チーム内のチャネルを一覧表示

teams_read_channel_messages

最近のチャネルメッセージを読み取る

teams_send_channel_message

チャネルにメッセージを送信

teams_reply_to_message

チャネルスレッドで返信

teams_read_message_replies

スレッドの返信を読み取る

teams_list_chats

自分の DM とグループチャットを一覧表示

teams_read_chat_messages

チャットからメッセージを読み取る

teams_send_chat_message

ダイレクト/グループチャットメッセージを送信

teams_search_messages

すべての Teams 全体でメッセージを検索

teams_get_profile

自分の Microsoft 365 プロフィールを取得

アーキテクチャ

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)

環境変数

変数

必須

デフォルト

説明

TEAMS_CLIENT_ID

はい

Azure AD アプリのクライアント ID

TEAMS_CLIENT_SECRET

はい

Azure AD クライアント シークレット

TEAMS_AUTHORITY

いいえ

common

マルチテナント用の common、または特定のテナント ID

TRANSPORT_MODE

いいえ

auto

autostdio、または http

PORT

いいえ

3000

HTTP サーバーのポート

BASE_URL

いいえ

http://localhost:3000

公開 URL

REDIRECT_URI

いいえ

{BASE_URL}/auth/callback

OAuth コールバック URL

TOKEN_STORE_PATH

いいえ

./.data/tokens

トークンキャッシュディレクトリ

LOG_LEVEL

いいえ

info

ログレベル

ライセンス

MIT — LICENSE

コントリビューション

Issue と PR を歓迎します。開発者: 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