Teams MCP Server
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):
Claude が Microsoft Teams への接続を求めます
認証リンクをクリックします
Microsoft の職場アカウントでサインインします
完了 — Claude があなたの Teams を読み取れるようになります
API キー不要、Azure ポータル不要、セットアップ不要です。
開発者向け: セルフホスト
1. クローンとインストール
git clone https://github.com/SurgeEnterpriseAI/teams-mcp-server.git
cd teams-mcp-server
npm install
npm run build2. Azure AD アプリ登録
Azure Portal に移動 → アプリの登録 → 新規登録
名前:
Teams MCP Serverサポートされるアカウントの種類: "任意の組織ディレクトリ内のアカウント (任意の Azure AD ディレクトリ - マルチテナント)"
リダイレクト URI: Web →
https://your-server.com/auth/callback登録 をクリック
設定:
証明書とシークレット → 新しいクライアント シークレット → 値をコピー
API のアクセス許可 → 委任されたアクセス許可を追加 (Microsoft Graph):
ChannelMessage.Read.All,ChannelMessage.SendChat.Read,Chat.ReadWrite,ChatMessage.SendTeam.ReadBasic.All,Channel.ReadBasic.AllUser.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.js4. 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 を一覧表示 |
| チーム内のチャネルを一覧表示 |
| 最近のチャネルメッセージを読み取る |
| チャネルにメッセージを送信 |
| チャネルスレッドで返信 |
| スレッドの返信を読み取る |
| 自分の DM とグループチャットを一覧表示 |
| チャットからメッセージを読み取る |
| ダイレクト/グループチャットメッセージを送信 |
| すべての Teams 全体でメッセージを検索 |
| 自分の 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)環境変数
変数 | 必須 | デフォルト | 説明 |
| はい | — | Azure AD アプリのクライアント ID |
| はい | — | Azure AD クライアント シークレット |
| いいえ |
| マルチテナント用の |
| いいえ |
|
|
| いいえ |
| HTTP サーバーのポート |
| いいえ |
| 公開 URL |
| いいえ |
| OAuth コールバック URL |
| いいえ |
| トークンキャッシュディレクトリ |
| いいえ |
| ログレベル |
ライセンス
MIT — LICENSE
コントリビューション
Issue と PR を歓迎します。開発者: SurgeEnterpriseAI.
This server cannot be installed
Maintenance
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
- AlicenseNot gradedqualityCmaintenanceConnects Claude to Microsoft Outlook through the Microsoft Graph API, enabling email management (list, search, read, send) and calendar operations (list, create, accept, decline, delete events) via OAuth 2.0 authentication.1MIT
- FlicenseNot gradedqualityCmaintenanceProvides Claude Desktop and Claude Code with access to Microsoft 365 email and calendar services via the Microsoft Graph API. It enables users to manage emails, search folders, schedule calendar events, and check availability through natural language commands.
- AlicenseNot gradedqualityBmaintenanceConnects Claude with Microsoft 365 services such as Email, Calendar, Teams, OneDrive, and more through the Microsoft Graph API.4616MIT
- AlicenseNot gradedqualityCmaintenanceConnects Claude with Microsoft 365 services including Outlook, OneDrive, and Power Automate, enabling email, calendar, files, and flow management through natural language.34423MIT
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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