mcpField
M
microsoft-teams-automation

microsoft-teams-automation

github.com/sickn33生産性48.8k66 回インストール今日更新
リポジトリ

microsoft-teams-automation について

Rube MCP と Composio の Microsoft Teams ツールキットを使って Teams 操作を自動化するワークフロー向けスキルです。メッセージ、会議、チームやチャネルの管理、検索に対応し、実行前にツールスキーマと接続状態を確認します。

主な機能

  1. 01チャネルやチャットへのメッセージ送信
  2. 02オンライン会議の作成
  3. 03チーム、チャネル、メンバーの管理
  4. 04Teams メッセージの検索
  5. 05スキーマの確認と接続状態の検証

活用シーン

  1. 01チャネルへの更新投稿
  2. 021 対 1 またはグループチャットの作成
  3. 03Teams オンライン会議の設定
  4. 04チャットやチャネルをまたいだメッセージ検索

MCP 対応

Rube MCP 経由で Composio の Microsoft Teams ツールキットを呼び出します。クライアントで Rube MCP に接続し、Microsoft Teams の認証を完了する必要があります。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill microsoft-teams-automation

インストール後、Claude Code で/microsoft-teams-automationを入力して読み込まれたか確認します。

詳細

Rube MCP 経由の Microsoft Teams 自動化

Rube MCP 経由で Composio の Microsoft Teams ツールキットを利用し、Microsoft Teams の操作を自動化します。

前提条件

  • Rube MCP が接続されていること(RUBE_SEARCH_TOOLS が利用可能)
  • ツールキット microsoft_teams を指定した RUBE_MANAGE_CONNECTIONS 経由で Microsoft Teams に接続済みであること
  • 現在のツールスキーマを取得するため、必ず最初に RUBE_SEARCH_TOOLS を呼び出してください

セットアップ

Rube MCP を入手する:クライアント設定で https://rube.app/mcp を MCP サーバーとして追加します。API キーは不要です。エンドポイントを追加するだけで利用できます。

  1. RUBE_SEARCH_TOOLS が応答することを確認し、Rube MCP が利用可能であることを確かめます
  2. ツールキット microsoft_teams を指定して RUBE_MANAGE_CONNECTIONS を呼び出します
  3. 接続が ACTIVE でない場合は、返された認証リンクに従って Microsoft OAuth を完了します
  4. ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します

通信とアクセス範囲

書き込みを行う前に、テナント、チーム/チャット/チャネルの ID、宛先を確認してください。表示名は曖昧な場合があります。メッセージの送信、会議やチャットの作成、メンバーの追加を行うには、それらの操作に対するユーザーの明示的な承認が必要です。読み取り/検索の依頼は、参加者への連絡やアクセス範囲の拡大を許可するものではありません。非公開のコンテンツや参加 URL を保護し、Retry-After に従ってください。書き込みが不確かな場合は再送信せず、返されたメッセージ ID/操作 ID を確認してください。実際に検出したスキーマを使用してください。この静的なスラッグ/パラメーター一覧は、インストールや権限を示すものではありません。

主なワークフロー

1. チャネルメッセージを送信する

使用する場合:ユーザーが Teams チャネルへのメッセージ投稿を希望している場合

ツールの順序:

  1. MICROSOFT_TEAMS_TEAMS_LIST — 対象チームを見つけるため、チームを一覧表示します[前提条件]
  2. MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS — チーム内のチャネルを一覧表示します[前提条件]
  3. MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE — メッセージを投稿します[必須]

主なパラメーター:

  • team_id:チームの UUID(TEAMS_LIST から取得)
  • channel_id:チャネル ID(LIST_CHANNELS から取得。形式:'19:[email protected]')
  • content:メッセージテキストまたは HTML
  • content_type:'text' または 'html'

注意点:

  • team_id は有効な UUID 形式である必要があります
  • channel_id はスレッド形式である必要があります(例:'19:[email protected]')
  • TEAMS_LIST はページネーションされる場合があります(1 ページあたり約 100 件)。すべてのチームを見つけるには、@odata.nextLink をたどってください
  • ユーザーにチームへのアクセス権がない場合、LIST_CHANNELS は 403 を返すことがあります
  • 約 28KB を超えるメッセージでは 400/413 エラーが発生することがあります。長いコンテンツは分割してください
  • スロットリングにより 429 が返されることがあります。指数バックオフ(1 秒/2 秒/4 秒)を使用してください
2. チャットメッセージを送信する

使用する場合:ユーザーが 1 対 1 またはグループチャットでのメッセージ送信を希望している場合

ツールの順序:

  1. MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS — 既存のチャットを一覧表示します[任意]
  2. MICROSOFT_TEAMS_LIST_USERS — 新しいチャットのユーザーを探します[任意]
  3. MICROSOFT_TEAMS_TEAMS_CREATE_CHAT — 新しいチャットを作成します[任意]
  4. MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE — メッセージを送信します[必須]

主なパラメーター:

  • chat_id:チャット ID(GET_ALL_CHATS または CREATE_CHAT から取得)
  • content:メッセージの内容
  • content_type:'text' または 'html'
  • chatType:'oneOnOne' または 'group'(CREATE_CHAT 用)
  • members:メンバーオブジェクトの配列(CREATE_CHAT 用)

注意点:

  • CREATE_CHAT では、認証済みユーザーをメンバーの 1 人として指定する必要があります
  • 2 人のユーザー間に oneOnOne チャットがすでに存在する場合、既存のチャットが返されます
  • グループチャットには、'owner' ロールのメンバーが少なくとも 1 人必要です
  • メンバーの user_odata_bind には、Microsoft Graph の完全な URL 形式を使用する必要があります
  • チャットのフィルター機能は非常に限られています。必要に応じてクライアント側でフィルター処理してください
3. オンライン会議を作成する

使用する場面:ユーザーが Microsoft Teams 会議のスケジュールを設定したい場合

ツールの順序:

  1. MICROSOFT_TEAMS_LIST_USERS - 参加者のユーザー ID を検索します[任意]
  2. MICROSOFT_TEAMS_CREATE_MEETING - 会議を作成します[必須]

主なパラメーター:

  • subject:会議のタイトル
  • start_date_time:開始時刻(ISO 8601 形式。例:'2024-08-15T10:00:00Z')
  • end_date_time:終了時刻(ISO 8601 形式。開始時刻より後である必要があります)
  • participants:user_id と role を含むユーザーオブジェクトの配列

注意点:

  • end_date_time は start_date_time より厳密に後である必要があります
  • 参加者にはメールアドレスではなく、有効な Microsoft user_id(GUID)値が必要です
  • これにより、カレンダーイベントに紐付かない単独の会議が作成されます
  • カレンダーに紐付いた会議を作成するには、is_online_meeting=true を指定して OUTLOOK_CALENDAR_CREATE_EVENT を使用してください
4. チームとチャネルを管理する

使用する場面:ユーザーがチームやチャネルの一覧表示、作成、管理を行いたい場合

ツールの順序:

  1. MICROSOFT_TEAMS_TEAMS_LIST - アクセス可能なすべてのチームを一覧表示します[必須]
  2. MICROSOFT_TEAMS_GET_TEAM - 特定のチームの詳細を取得します[任意]
  3. MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS - チーム内のチャネルを一覧表示します[任意]
  4. MICROSOFT_TEAMS_GET_CHANNEL - チャネルの詳細を取得します[任意]
  5. MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL - 新しいチャネルを作成します[任意]
  6. MICROSOFT_TEAMS_LIST_TEAM_MEMBERS - チームメンバーを一覧表示します[任意]
  7. MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM - チームにメンバーを追加します[任意]

主なパラメーター:

  • team_id:チームの UUID
  • channel_id:スレッド形式のチャネル ID
  • filter:OData フィルター文字列(例:"startsWith(displayName,'Project')")
  • select:返すプロパティをカンマ区切りで指定します

注意点:

  • TEAMS_LIST のページネーションでは、大規模なテナントの場合、@odata.nextLink に従ってください
  • プライベートチャネルや共有チャネルは、権限が一致しない場合に省略されることがあります
  • team_id または channel_id が間違っている場合、GET_CHANNEL は 404 を返します
  • ID 形式を推測せず、必ず一覧表示操作から ID を取得してください
5. メッセージを検索する

使用する場面:ユーザーが Teams のチャットやチャネル全体からメッセージを検索したい場合

ツールの順序:

  1. MICROSOFT_TEAMS_SEARCH_MESSAGES - KQL 構文を使って検索します[必須]

主なパラメーター:

  • query:KQL 検索クエリ(from:、sent:、添付ファイル、ブール論理をサポートします)

注意点:

  • 新しく投稿されたメッセージが検索結果に表示されるまで、30~60 秒かかることがあります
  • 検索結果は最終的に整合するため、即時の配信確認には使用しないでください
  • リアルタイムでメッセージを確認するには、メッセージ一覧表示ツールを使用してください

一般的なパターン

チーム ID とチャネル ID の解決
1. Call MICROSOFT_TEAMS_TEAMS_LIST
2. Find team by displayName
3. Extract team id (UUID format)
4. Call MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS with team_id
5. Find channel by displayName
6. Extract channel id (19:[email protected] format)
ユーザーの解決
1. Call MICROSOFT_TEAMS_LIST_USERS
2. Filter by displayName or email
3. Extract user id (UUID format)
4. Use for meeting participants, chat members, or team operations
ページネーション
  • Teams/ユーザー:次のページの URL である @odata.nextLink に従ってください
  • チャット:上限まで自動的にページネーションします。ページサイズには top を使用します(最大 50)
  • ページサイズを制御するには top パラメーターを使用してください
  • @odata.nextLink がなくなるまで続けてください

既知の注意点

認証と権限:

  • 操作ごとに異なる Microsoft Graph 権限が必要です
  • 403 エラーは、権限またはチームへのアクセスが不十分であることを示します
  • 一部の操作では、Azure AD テナントで管理者の同意が必要です

ID 形式:

  • チーム ID:UUID 形式(例:'87b0560f-fc0d-4442-add8-b380ca926707')
  • チャネル ID:スレッド形式(例:'19:[email protected]')
  • チャット ID:さまざまな形式(例:'19:[email protected]')
  • ユーザー ID:UUID 形式
  • ID を推測せず、必ず一覧表示操作から解決してください

レート制限:

  • Microsoft Graph ではスロットリングが適用されます
  • 429 レスポンスには Retry-After ヘッダーが含まれます
  • リクエストは毎秒数件に抑えてください
  • バッチ操作を利用すると、リクエスト総数を削減できます

メッセージの書式設定:

  • HTML content_type はリッチな書式設定をサポートします
  • Adaptive Card には追加の処理が必要です
  • メッセージのサイズ上限は約 28KB です
  • 長い内容は複数のメッセージに分割してください

クイックリファレンス

タスクツールスラッグ主なパラメータ
チームを一覧表示MICROSOFT_TEAMS_TEAMS_LISTfilter, select, top
チームの詳細を取得MICROSOFT_TEAMS_GET_TEAMteam_id
チャネルを一覧表示MICROSOFT_TEAMS_TEAMS_LIST_CHANNELSteam_id, filter
チャネルを取得MICROSOFT_TEAMS_GET_CHANNELteam_id, channel_id
チャネルを作成MICROSOFT_TEAMS_TEAMS_CREATE_CHANNELteam_id, displayName
チャネルに投稿MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGEteam_id, channel_id, content
チャットを一覧表示MICROSOFT_TEAMS_CHATS_GET_ALL_CHATSuser_id, limit
チャットを作成MICROSOFT_TEAMS_TEAMS_CREATE_CHATchatType, members, topic
チャットに投稿MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGEchat_id, content
会議を作成MICROSOFT_TEAMS_CREATE_MEETINGsubject, start_date_time, end_date_time
ユーザーを一覧表示MICROSOFT_TEAMS_LIST_USERSfilter, select, top
チームメンバーを一覧表示MICROSOFT_TEAMS_LIST_TEAM_MEMBERSteam_id
チームメンバーを追加MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAMteam_id, user_id
メッセージを検索MICROSOFT_TEAMS_SEARCH_MESSAGESquery
チャットメッセージを取得MICROSOFT_TEAMS_GET_CHAT_MESSAGEchat_id, message_id
参加中のチームを一覧表示MICROSOFT_TEAMS_LIST_USER_JOINED_TEAMS(なし)

使用する場合

このスキルは、概要で説明されているワークフローまたはアクションを実行する場合に適用されます。

制限事項

  • このスキルは、タスクが上記で説明されている範囲に明確に一致する場合にのみ使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代替として扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が欠けている場合は、停止して確認を求めてください。

コメント