mcpField
M
Microsoft Teams

Microsoft Teams

ローカル
github.comコミュニケーション229 週間前に更新

Microsoft Teams について

Microsoft Teamsは、ClaudeクライアントとMicrosoft Teamsを接続するオープンソースのMCPサーバーです。Microsoft 365ユーザー向けに、メッセージの閲覧・送信、チャネルやチャットへのアクセス、検索機能を提供します。

主な機能

  1. 01チームとチャネルの一覧表示
  2. 02チャネルとチャットのメッセージ閲覧
  3. 03メッセージとスレッド返信の送信
  4. 04Teams全体のメッセージ検索
  5. 05Microsoft 365プロフィールの表示
  6. 06STDIOとHTTP/SSEトランスポート対応

活用シーン

  1. 01Claudeで最近のチャネルの議論を確認
  2. 02Teams全体からメッセージを検索
  3. 03チャネル更新やチャットを送信
  4. 04組織のTeamsにClaudeを接続

MCP 対応

チャネルやチャットのメッセージ操作、検索、プロフィール取得など、11個のTeamsツールをMCPクライアントに提供します。STDIOとHTTP/SSEに対応し、Microsoftログインとセッションごとのトークン分離を使用します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"surgeenterpriseai-teams": {
"command": "npx",
"args": [
"-y",
"microsoft-teams-mcp-server"
]
}
}
}
起動コマンドnpx -y microsoft-teams-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmmicrosoft-teams-mcp-server1.0.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Teams MCP サーバー

Claude 向けの、初のオープンソース Microsoft Teams コネクターです。Microsoft 365 ユーザーなら誰でも、職場のアカウントでサインインするだけで接続できます。セットアップも認証情報も不要で、セルフホストも必要ありません。

Claude Code、Claude Desktop、または Claude Cowork から、メッセージの閲覧、チャネルの一覧表示、Teams 全体の検索、メッセージの送信を行えます。

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 アカウントで接続します。 自分のチーム、自分のチャネル、自分のメッセージが表示されます。各ユーザーのトークンは個別に分離されています。サーバーは中継役であり、メッセージを保存することはなく、転送するだけです。

機能

  • ワンクリック接続 — /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 portal もセットアップも必要ありません。

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

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 → App registrations → New registration に移動します
  2. 名前:Teams MCP Server
  3. サポートされるアカウントの種類:「Accounts in any organizational directory (Any Azure AD directory - Multitenant)」
  4. リダイレクト URI:Web → https://your-server.com/auth/callback
  5. Register をクリックします

設定:

  • Certificates & secrets → 新しいクライアントシークレットを作成 → Value をコピーします
  • API Permissions → Delegated(Microsoft Graph)を追加します:
    • ChannelMessage.Read.All、ChannelMessage.Send
    • Chat.Read、Chat.ReadWrite、ChatMessage.Send
    • Team.ReadBasic.All、Channel.ReadBasic.All
    • User.Read
  • Grant admin consent をクリックします(自分のテナントの場合。他のテナントでは初回ログイン時に同意します)
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 Registry に提出

デプロイしてテストしたら、サーバー URL を Anthropic の MCP コネクターレジストリに提出します。すると Claude Cowork で、Slack や Gmail と同じように、ユーザーが接続先として「Microsoft Teams」を選べるようになります。

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いいえautoauto、stdio、または http
PORTいいえ3000HTTP サーバーのポート
BASE_URLいいえhttp://localhost:3000公開 URL
REDIRECT_URIいいえ{BASE_URL}/auth/callbackOAuth コールバック URL
TOKEN_STORE_PATHいいえ./.data/tokensトークンキャッシュのディレクトリ
LOG_LEVELいいえinfoログレベル

ライセンス

MIT — LICENSE

貢献

Issue と PR を歓迎します。SurgeEnterpriseAI が開発しました。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。