mcpField
M
Microsoft 365 Teams

Microsoft 365 Teams

ローカル
github.com/mindstoneコミュニケーション13今日更新

Microsoft 365 Teams について

Microsoft Graph 経由でチャット、チャネル、メッセージ、同僚、プレゼンスを扱う Microsoft 365 Teams 向け MCP サーバーです。ホストの Microsoft 365 サインインで管理される OAuth 認証情報を再利用します。

主な機能

  1. 01チャット一覧とメッセージの取得
  2. 02チャットやチャネルへのメッセージ送信
  3. 03チャット作成とスレッド返信
  4. 04チャットとチャネルのメッセージ検索
  5. 05チームとチャネルの閲覧
  6. 06プレゼンスの取得と設定

活用シーン

  1. 01プロジェクトチャットの最近の投稿を確認
  2. 02チャットやチャネルに返信
  3. 03キーワードでメッセージを検索
  4. 04プレゼンスを確認または更新

MCP 対応

Teams のチャット、メッセージ、チーム、チャネル、ユーザー検索、検索、プレゼンスを扱う 17 個のツールを MCP クライアントに公開します。独自の認証ツールはなく、Microsoft 365 メールサーバーのサインインで得た認証情報を再利用します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mindstone-mcp-server-microsoft-teams": {
"command": "npx",
"args": [
"-y",
"@mindstone/mcp-server-microsoft-teams"
],
"env": {
"MS_CLIENT_ID": "<MS_CLIENT_ID>",
"MS_CONFIG_DIR": "<MS_CONFIG_DIR>",
"MS_ACCOUNT_EMAIL": "<MS_ACCOUNT_EMAIL>",
"MS_MCP_PACKAGE_ID": "<MS_MCP_PACKAGE_ID>",
"MICROSOFT_REQUEST_TIMEOUT_MS": "<MICROSOFT_REQUEST_TIMEOUT_MS>"
}
}
}
}
起動コマンドnpx -y @mindstone/mcp-server-microsoft-teams
設定が必要な環境変数
MS_CLIENT_IDMicrosoft Entra (Azure AD) application client ID
MS_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 responses
MICROSOFT_REQUEST_TIMEOUT_MSOverride the upstream Microsoft Graph request timeout in milliseconds (max 300000 = 5 min)

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

パッケージ
npm@mindstone/mcp-server-microsoft-teams0.3.1

ツール

17

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
topnumberいいえ返すチャットの最大数(デフォルト:25、最大:50)

詳細

@mindstone/mcp-server-microsoft-teams

npm version License: FSL-1.1-MIT

Microsoft 365 Teams 用 MCP サーバーです。Teams のチャットやチャネルのメッセージの一覧表示と読み取り、メッセージや返信の送信、新しいチャットの開始、同僚の検索、メッセージの検索、Microsoft Graph API を介したプレゼンスの読み取りと設定ができます。

コホート形式の Microsoft 365 Teams MCP です。ホストが一度サインインするだけで、同じ認証情報を使って Teams、メール、カレンダー、ファイル、SharePoint を利用できるよう、@mindstone/mcp-server-microsoft-mail が管理する OAuth の仕組みを再利用します。

ステータス

開発の背景

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 件のメッセージを表示してください。」

ホストが呼び出すツール:

  1. list_chats — 参加者 [email protected] と [email protected] でチャットを絞り込みます。
  2. 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 を開始することはありません。

ワンクリックインストール

Cursorに追加 VS Codeに追加 VS Code Insidersに追加

ボタンをクリックすると、ホストから次の項目を入力するよう求められます: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_IDMicrosoft 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_MSMicrosoft Graph へのリクエストのタイムアウトを上書きします(最大 300000 ミリ秒)。60000
MICROSOFT_DISABLE_REFRESH1 に設定すると、このサーフェスでのトークン更新を無効にします。ツールは構造化された 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 ライセンスへ移行します。

コメント

MCP は初めてですか?

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

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