Microsoft 365 Teams について
Microsoft Graph 経由でチャット、チャネル、メッセージ、同僚、プレゼンスを扱う Microsoft 365 Teams 向け MCP サーバーです。ホストの Microsoft 365 サインインで管理される OAuth 認証情報を再利用します。
主な機能
- 01チャット一覧とメッセージの取得
- 02チャットやチャネルへのメッセージ送信
- 03チャット作成とスレッド返信
- 04チャットとチャネルのメッセージ検索
- 05チームとチャネルの閲覧
- 06プレゼンスの取得と設定
活用シーン
- 01プロジェクトチャットの最近の投稿を確認
- 02チャットやチャネルに返信
- 03キーワードでメッセージを検索
- 04プレゼンスを確認または更新
MCP 対応
Teams のチャット、メッセージ、チーム、チャネル、ユーザー検索、検索、プレゼンスを扱う 17 個のツールを MCP クライアントに公開します。独自の認証ツールはなく、Microsoft 365 メールサーバーのサインインで得た認証情報を再利用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @mindstone/mcp-server-microsoft-teamsMS_CLIENT_IDMicrosoft Entra (Azure AD) application client IDMS_CONFIG_DIRPath to the per-user Microsoft config directory (credentials/, accounts.json)MS_ACCOUNT_EMAILAccount email when running in multi-account per-instance mode (falls back to the first account in accounts.json)MS_MCP_PACKAGE_IDLogical package ID surfaced in error responsesMICROSOFT_REQUEST_TIMEOUT_MSOverride the upstream Microsoft Graph request timeout in milliseconds (max 300000 = 5 min)ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
17掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| top | number | いいえ | 返すチャットの最大数(デフォルト:25、最大:50) |
詳細
@mindstone/mcp-server-microsoft-teams
Microsoft 365 Teams 用 MCP サーバーです。Teams のチャットやチャネルのメッセージの一覧表示と読み取り、メッセージや返信の送信、新しいチャットの開始、同僚の検索、メッセージの検索、Microsoft Graph API を介したプレゼンスの読み取りと設定ができます。
コホート形式の Microsoft 365 Teams MCP です。ホストが一度サインインするだけで、同じ認証情報を使って Teams、メール、カレンダー、ファイル、SharePoint を利用できるよう、@mindstone/mcp-server-microsoft-mail が管理する OAuth の仕組みを再利用します。
ステータス
- バージョン: 0.3.1 · npm
- 認証: OAuth(ホストが調整。認証情報は
mcp-server-microsoft-mailと共有)(MS_CLIENT_ID) - ツール: 17(チャット、メッセージ、チーム、チャネル、ユーザー、検索、プレゼンス)
- 提供形態: cloud-api
- 機械可読情報:
STATUS.json - 共有ライブラリ:
@mindstone/mcp-server-microsoft-shared
開発の背景
2026 年 5 月にこのサーバーを移植した時点では、Microsoft 独自の Graph MCP ラインナップに単独の Teams サーバーはまだなく、当時のコミュニティ製の選択肢では Teams が独立したログイン先として扱われていました。そのため、コネクターごとに個別の OAuth フローを実行し、それぞれが更新トークンのコピーを保存していました。MindstoneRebel のバンドル版コネクターを 1:1 で移植し、Microsoft 365 の同じ 5 つのコネクター(メール、カレンダー、ファイル、Teams、SharePoint)が、単一の認証情報セット、トークンの永続化とリクエストのタイムアウトを担う単一の共有ライブラリパッケージ、そしてホストがすでに復旧方法を把握している構造化された auth_required エンベロープを共有できるようにしました。Teams は独自のツールを宣言せず、@mindstone/mcp-server-microsoft-mail の authenticate_microsoft_account ツールを再利用します。一部の Teams Graph API ではテナント管理者の承認が必要になる場合があります。詳しくは Microsoft の Teams Graph ドキュメントをご覧ください。
やり取りの例
「Alice と Bob が参加しているプロジェクトのチャットで、直近 10 件のメッセージを表示してください。」
ホストが呼び出すツール:
list_chats— 参加者[email protected]と[email protected]でチャットを絞り込みます。list_chat_messages— 特定したチャット ID から最新 10 件のメッセージを返します。
レスポンス(一部抜粋):
{
"chat": {
"id": "19:[email protected]",
"topic": "Project planning",
"members": ["[email protected]", "[email protected]"]
},
"messages": [
{ "id": "171...", "from": "Alice", "body": "Pushed the updated forecast", "createdDateTime": "2026-05-19T08:42:00Z" }
]
}
要件
- Node.js 20+
- npm
- Microsoft OAuth フローを実行し、アカウントごとのトークンファイルを
${MS_CONFIG_DIR}/credentials/${sanitised-email}.token.jsonに、${MS_CONFIG_DIR}/accounts.jsonインデックスを作成するホストアプリケーション。このサーバーはそれらのファイルを読み取りますが、自身で OAuth を開始することはありません。
ワンクリックインストール
ボタンをクリックすると、ホストから次の項目を入力するよう求められます:MS_CLIENT_ID、MS_CONFIG_DIR、MS_MCP_PACKAGE_ID、MICROSOFT_REQUEST_TIMEOUT_MS。
Claude Desktop / Claude Code / Goose / Continue.dev 用の手動設定(Microsoft 365 Teams)
{
"mcpServers": {
"Microsoft 365 Teams": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-microsoft-teams"
],
"env": {
"MS_CLIENT_ID": "",
"MS_CONFIG_DIR": "",
"MS_MCP_PACKAGE_ID": "Microsoft365Teams",
"MICROSOFT_REQUEST_TIMEOUT_MS": "60000"
}
}
}
}
クイックスタート
インストールとビルド
cd <path-to-repo>/connectors/microsoft-teams
npm install
npm run build
npx(公開後)
npx -y @mindstone/mcp-server-microsoft-teams
ローカル
node dist/index.js
設定
このサーバーは、Microsoft 365 の OAuth フローを管理するホストアプリケーションと連携して動作します。ホストが認証情報をディスクに書き込み、このサーバーがそれを読み取ります。
必須の環境変数
| 名前 | 説明 |
|---|---|
MS_CLIENT_ID | Microsoft Entra(Azure AD)アプリケーションのクライアント ID。 |
MS_CONFIG_DIR | ユーザーごとの Microsoft 設定ディレクトリへのパス(credentials/、accounts.json)。 |
オプションの環境変数
| 名前 | 説明 | デフォルト |
|---|---|---|
MS_ACCOUNT_EMAIL | インスタンスごとのマルチアカウントモードで実行する場合のアカウントのメールアドレス。 | accounts.json の最初のアカウント。 |
MS_MCP_PACKAGE_ID | エラーレスポンスに表示される論理パッケージ ID。 | Microsoft365Teams |
MICROSOFT_REQUEST_TIMEOUT_MS | Microsoft Graph へのリクエストのタイムアウトを上書きします(最大 300000 ミリ秒)。 | 60000 |
MICROSOFT_DISABLE_REFRESH | 1 に設定すると、このサーフェスでのトークン更新を無効にします。ツールは構造化された auth_required レスポンスを返して失敗し、ホストが再認証を促せるようにします。クラウドサーフェスではこの値が 1 に設定されます。 | 未設定 |
ホストの設定例
Claude Desktop / Cursor
{
"mcpServers": {
"Microsoft365Teams": {
"command": "npx",
"args": ["-y", "@mindstone/mcp-server-microsoft-teams"],
"env": {
"MS_CLIENT_ID": "your-entra-application-client-id",
"MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"
}
}
}
}
まず @mindstone/mcp-server-microsoft-mail の authenticate_microsoft_account を使ってサインインしてください。Teams ツールは、そこに書き込まれた認証情報を ${MS_CONFIG_DIR}/ から再利用します。
ローカル開発(npm への公開は不要)
{
"mcpServers": {
"Microsoft365Teams": {
"command": "node",
"args": ["<path-to-repo>/connectors/microsoft-teams/dist/index.js"],
"env": {
"MS_CLIENT_ID": "your-entra-application-client-id",
"MS_CONFIG_DIR": "/absolute/path/to/microsoft-config"
}
}
}
}
ツール(17)
| ツール | 説明 |
|---|---|
list_chats | 最近の Teams チャットを一覧表示します。 |
get_chat | 特定のチャットの詳細を取得します。 |
list_chat_messages | チャットの最近のメッセージを一覧表示します。 |
send_chat_message | チャットにメッセージを送信します。 |
reply_to_message | 特定のチャットメッセージに返信し、スレッド形式の返信を作成します。 |
compose_chat_message | 送信前にインライン編集可能な作成フォームを開きます。ユーザーが「送信」をクリックすると、このフォームから send_chat_message を介して投稿されます。 |
find_user | 表示名またはメールアドレスでユーザーを検索します。User.ReadBasic.All が必要です。 |
create_chat | メンバーのメールアドレスまたはユーザー ID を指定して、1 対 1 またはグループのチャットを作成し、新しいチャット ID を返します。 |
search_messages | キーワードでチャットとチャネルのメッセージを検索します。 |
list_teams | 自分がメンバーになっているチームを一覧表示します。 |
list_channels | チーム内のチャネルを一覧表示します。 |
list_channel_messages | チャネルの最近のメッセージを一覧表示します。ChannelMessage.Read.All が必要です。 |
send_channel_message | チャネルに新しいメッセージを投稿します。ChannelMessage.Send が必要です。 |
reply_to_channel_message | 既存のチャネルメッセージに返信します。ChannelMessage.Send が必要です。 |
get_presence | 現在のプレゼンス状態を取得します。 |
get_user_presence | 同僚のプレゼンス状態を取得します。Presence.Read.All が必要です。 |
set_presence | 任意で期間を指定して、自分のプレゼンス状態を設定します。Presence.ReadWrite が必要です。 |
一部の Teams Graph API では、テナント管理者の承認が必要な場合があります。必要なアクセス許可が設定されたツールは、接続済みアカウントのトークンを事前に確認し、アクセス許可がない場合は再接続に関する具体的な案内を返します(Microsoft の管理対象の同意ポリシーでは、ほとんどのテナントで ChannelMessage.Read.All に管理者の同意が必要です)。
セキュリティに関する注意事項
- 独自の認証ツールはありません。コホートで OAuth の接続先を一元化するため、サインインは
@mindstone/mcp-server-microsoft-mailに委任されます。 - ツールごとの Graph 呼び出しは、呼び出し元とコホートのタイムアウトシグナルを合成して実行されます。
ライセンス
FSL-1.1-MIT — MIT による将来のライセンス付与を含む Functional Source License バージョン 1.1 です。競合しない用途であれば無料で使用でき、LICENSE に記載された変換日に MIT ライセンスへ移行します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。