microsoft-teams-automation について
Rube MCP と Composio のツールキットを通じて Microsoft Teams を自動化するスキルです。メッセージ、会議、チーム管理、検索に対応します。
主な機能
- 01チャネルとチャットへの投稿
- 02オンライン会議の作成
- 03チームとチャネルの管理
- 04Teams メッセージの検索
- 05メンバーとチャットの管理
活用シーン
- 01チャネルへの告知投稿
- 02個人またはグループへの送信
- 03過去のメッセージの検索
- 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 キーは不要です。エンドポイントを追加するだけで動作します。
RUBE_SEARCH_TOOLSが応答することを確認し、Rube MCP が利用可能であることを確認しますmicrosoft_teamsツールキットを指定してRUBE_MANAGE_CONNECTIONSを呼び出します- 接続が ACTIVE でない場合は、返された認証リンクを開いて Microsoft OAuth を完了します
- ワークフローを実行する前に、接続ステータスが ACTIVE であることを確認します
主なワークフロー
1. チャネルメッセージの送信
使用する場合:ユーザーが Teams チャネルへのメッセージ投稿を希望するとき
ツールの呼び出し順序:
MICROSOFT_TEAMS_TEAMS_LIST- 対象チームを見つけるためにチームを一覧表示します[前提条件]MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS- チーム内のチャネルを一覧表示します[前提条件]MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE- メッセージを投稿します[必須]
主なパラメーター:
team_id:チームの UUID(TEAMS_LIST から取得)channel_id:チャネル ID(LIST_CHANNELS から取得、形式:'19:[email protected]')content:メッセージのテキストまたは HTMLcontent_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 またはグループチャットのメッセージ送信を希望するとき
ツールの呼び出し順序:
MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS- 既存のチャットを一覧表示します[任意]MICROSOFT_TEAMS_LIST_USERS- 新しいチャットのユーザーを検索します[任意]MICROSOFT_TEAMS_TEAMS_CREATE_CHAT- 新しいチャットを作成します[任意]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 会議のスケジュール設定を希望するとき
ツールの呼び出し順序:
MICROSOFT_TEAMS_LIST_USERS- 参加者のユーザー ID を検索します[任意]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. チームとチャネルを管理する
使用する場面:チームやチャネルの一覧表示、作成、管理を行いたい場合
ツールの順序:
MICROSOFT_TEAMS_TEAMS_LIST- アクセス可能なすべてのチームを一覧表示します[必須]MICROSOFT_TEAMS_GET_TEAM- 特定のチームの詳細を取得します[任意]MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS- チーム内のチャネルを一覧表示します[任意]MICROSOFT_TEAMS_GET_CHANNEL- チャネルの詳細を取得します[任意]MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL- 新しいチャネルを作成します[任意]MICROSOFT_TEAMS_LIST_TEAM_MEMBERS- チームメンバーを一覧表示します[任意]MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM- チームにメンバーを追加します[任意]
主なパラメーター:
team_id:チームの UUIDchannel_id:スレッド形式のチャネル IDfilter:OData フィルター文字列(例:「startsWith(displayName,'Project')」)select:返すプロパティをカンマ区切りで指定します
注意点:
- TEAMS_LIST のページネーション:大規模なテナントでは @odata.nextLink をたどります
- 権限が適切でない場合、プライベートチャネルや共有チャネルが省略されることがあります
- team_id または channel_id が誤っていると、GET_CHANNEL は 404 を返します
- ID は必ず一覧表示操作から取得し、形式を推測しないでください
5. メッセージを検索する
使用する場面:Teams のチャットやチャネル全体からメッセージを検索したい場合
ツールの順序:
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
| Task | Tool Slug | Key Params |
|---|---|---|
| List teams | MICROSOFT_TEAMS_TEAMS_LIST | filter, select, top |
| Get team details | MICROSOFT_TEAMS_GET_TEAM | team_id |
| List channels | MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS | team_id, filter |
| Get channel | MICROSOFT_TEAMS_GET_CHANNEL | team_id, channel_id |
| Create channel | MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL | team_id, displayName |
| Post to channel | MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE | team_id, channel_id, content |
| List chats | MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS | user_id, limit |
| Create chat | MICROSOFT_TEAMS_TEAMS_CREATE_CHAT | chatType, members, topic |
| Post to chat | MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE | chat_id, content |
| Create meeting | MICROSOFT_TEAMS_CREATE_MEETING | subject, start_date_time, end_date_time |
| List users | MICROSOFT_TEAMS_LIST_USERS | filter, select, top |
| List team members | MICROSOFT_TEAMS_LIST_TEAM_MEMBERS | team_id |
| Add team member | MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM | team_id, user_id |
| Search messages | MICROSOFT_TEAMS_SEARCH_MESSAGES | query |
| Get chat message | MICROSOFT_TEAMS_GET_CHAT_MESSAGE | chat_id, message_id |
| List joined teams | MICROSOFT_TEAMS_LIST_USER_JOINED_TEAMS | (none) |
Powered by Composio