mcpField
M
microsoft-teams-automation

microsoft-teams-automation

github.com/davepoon生産性3.7k120 回インストール2 日前に更新
リポジトリ

microsoft-teams-automation について

Rube MCP と Composio のツールキットを通じて Microsoft Teams を自動化するスキルです。メッセージ、会議、チーム管理、検索に対応します。

主な機能

  1. 01チャネルとチャットへの投稿
  2. 02オンライン会議の作成
  3. 03チームとチャネルの管理
  4. 04Teams メッセージの検索
  5. 05メンバーとチャットの管理

活用シーン

  1. 01チャネルへの告知投稿
  2. 02個人またはグループへの送信
  3. 03過去のメッセージの検索
  4. 04Teams オンライン会議の設定

MCP 対応

Rube MCP 経由で Composio の Microsoft Teams ツールキットを利用します。Rube MCP への接続と Microsoft Teams の認証が必要です。

インストール

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

$npx skills add https://github.com/davepoon/buildwithclaude --skill microsoft-teams-automation

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

詳細

Rube MCP による Microsoft Teams の自動化

Rube MCP を通じて、Composio の Microsoft Teams ツールキットを使用し、Microsoft Teams の操作を自動化します。

ツールキットのドキュメント:composio.dev/toolkits/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 であることを確認します

主なワークフロー

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 ユーザー 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 は必ず一覧表示操作から取得し、形式を推測しないでください
5. メッセージを検索する

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

ツールの順序:

  1. MICROSOFT_TEAMS_SEARCH_MESSAGES - KQL 構文で検索します[必須]

主なパラメーター:

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

注意点:

  • 新しく投稿されたメッセージが検索結果に表示されるまで、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/Users:次のページの URL として @odata.nextLink をたどります
  • Chats:limit まで自動でページネーションします。ページサイズには 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 Cards には追加の処理が必要です
  • メッセージサイズの上限は約 28KB です
  • 長いコンテンツは複数のメッセージに分割してください

Quick Reference

TaskTool SlugKey Params
List teamsMICROSOFT_TEAMS_TEAMS_LISTfilter, select, top
Get team detailsMICROSOFT_TEAMS_GET_TEAMteam_id
List channelsMICROSOFT_TEAMS_TEAMS_LIST_CHANNELSteam_id, filter
Get channelMICROSOFT_TEAMS_GET_CHANNELteam_id, channel_id
Create channelMICROSOFT_TEAMS_TEAMS_CREATE_CHANNELteam_id, displayName
Post to channelMICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGEteam_id, channel_id, content
List chatsMICROSOFT_TEAMS_CHATS_GET_ALL_CHATSuser_id, limit
Create chatMICROSOFT_TEAMS_TEAMS_CREATE_CHATchatType, members, topic
Post to chatMICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGEchat_id, content
Create meetingMICROSOFT_TEAMS_CREATE_MEETINGsubject, start_date_time, end_date_time
List usersMICROSOFT_TEAMS_LIST_USERSfilter, select, top
List team membersMICROSOFT_TEAMS_LIST_TEAM_MEMBERSteam_id
Add team memberMICROSOFT_TEAMS_ADD_MEMBER_TO_TEAMteam_id, user_id
Search messagesMICROSOFT_TEAMS_SEARCH_MESSAGESquery
Get chat messageMICROSOFT_TEAMS_GET_CHAT_MESSAGEchat_id, message_id
List joined teamsMICROSOFT_TEAMS_LIST_USER_JOINED_TEAMS(none)

Powered by Composio

コメント