microsoft-teams-automation

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Microsoft Teams Automation via Rube MCP

通过Rube MCP实现Microsoft Teams自动化

Automate Microsoft Teams operations through Composio's Microsoft Teams toolkit via Rube MCP.
通过Composio的Microsoft Teams工具包,借助Rube MCP自动化Microsoft Teams的各项操作。

Prerequisites

前提条件

  • Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
  • Active Microsoft Teams connection via
    RUBE_MANAGE_CONNECTIONS
    with toolkit
    microsoft_teams
  • Always call
    RUBE_SEARCH_TOOLS
    first to get current tool schemas
  • 已连接Rube MCP(需可使用RUBE_SEARCH_TOOLS)
  • 通过
    RUBE_MANAGE_CONNECTIONS
    并使用
    microsoft_teams
    工具包,建立有效的Microsoft Teams连接
  • 请始终先调用
    RUBE_SEARCH_TOOLS
    以获取最新的工具架构

Setup

设置步骤

Get Rube MCP: Add
https://rube.app/mcp
as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
  1. Verify Rube MCP is available by confirming
    RUBE_SEARCH_TOOLS
    responds
  2. Call
    RUBE_MANAGE_CONNECTIONS
    with toolkit
    microsoft_teams
  3. If connection is not ACTIVE, follow the returned auth link to complete Microsoft OAuth
  4. Confirm connection status shows ACTIVE before running any workflows
获取Rube MCP:在客户端配置中添加
https://rube.app/mcp
作为MCP服务器。无需API密钥——只需添加该端点即可使用。
  1. 确认
    RUBE_SEARCH_TOOLS
    可正常响应,以此验证Rube MCP是否可用
  2. 调用
    RUBE_MANAGE_CONNECTIONS
    并指定工具包为
    microsoft_teams
  3. 如果连接状态未显示为ACTIVE,请按照返回的授权链接完成Microsoft OAuth认证
  4. 在运行任何工作流之前,确认连接状态为ACTIVE

Core Workflows

核心工作流

1. Send Channel Messages

1. 发送频道消息

When to use: User wants to post a message to a Teams channel
Tool sequence:
  1. MICROSOFT_TEAMS_TEAMS_LIST
    - List teams to find target team [Prerequisite]
  2. MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS
    - List channels in the team [Prerequisite]
  3. MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE
    - Post the message [Required]
Key parameters:
  • team_id
    : UUID of the team (from TEAMS_LIST)
  • channel_id
    : Channel ID (from LIST_CHANNELS, format: '19:...@thread.tacv2')
  • content
    : Message text or HTML
  • content_type
    : 'text' or 'html'
Pitfalls:
  • team_id must be a valid UUID format
  • channel_id must be in thread format (e.g., '19:abc@thread.tacv2')
  • TEAMS_LIST may paginate (~100 items/page); follow @odata.nextLink to find all teams
  • LIST_CHANNELS can return 403 if user lacks access to the team
  • Messages over ~28KB can trigger 400/413 errors; split long content
  • Throttling may return 429; use exponential backoff (1s/2s/4s)
适用场景:用户需要向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:...@thread.tacv2')
  • content
    : 消息文本或HTML内容
  • content_type
    : 'text' 或 'html'
注意事项:
  • team_id必须是有效的UUID格式
  • channel_id必须为线程格式(例如:'19:abc@thread.tacv2')
  • TEAMS_LIST可能会分页(每页约100条数据);请跟随@odata.nextLink获取所有团队
  • 如果用户没有该团队的访问权限,LIST_CHANNELS可能会返回403错误
  • 超过约28KB的消息可能会触发400/413错误;请拆分长内容
  • 限流可能会返回429错误;请使用指数退避策略(1秒/2秒/4秒)

2. Send Chat Messages

2. 发送聊天消息

When to use: User wants to send a direct or group chat message
Tool sequence:
  1. MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS
    - List existing chats [Optional]
  2. MICROSOFT_TEAMS_LIST_USERS
    - Find users for new chats [Optional]
  3. MICROSOFT_TEAMS_TEAMS_CREATE_CHAT
    - Create a new chat [Optional]
  4. MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE
    - Send the message [Required]
Key parameters:
  • chat_id
    : Chat ID (from GET_ALL_CHATS or CREATE_CHAT)
  • content
    : Message content
  • content_type
    : 'text' or 'html'
  • chatType
    : 'oneOnOne' or 'group' (for CREATE_CHAT)
  • members
    : Array of member objects (for CREATE_CHAT)
Pitfalls:
  • CREATE_CHAT requires the authenticated user as one of the members
  • oneOnOne chats return existing chat if one already exists between the two users
  • group chats require at least one member with 'owner' role
  • member user_odata_bind must use full Microsoft Graph URL format
  • Chat filter support is very limited; filter client-side when needed
适用场景:用户需要发送一对一或群组聊天消息
工具执行流程:
  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要求已认证用户作为成员之一
  • 如果两个用户之间已存在一对一聊天,调用CREATE_CHAT会返回该现有聊天
  • 群组聊天至少需要一个拥有'owner'角色的成员
  • 成员的user_odata_bind必须使用完整的Microsoft Graph URL格式
  • 聊天筛选功能非常有限;必要时请在客户端进行筛选

3. Create Online Meetings

3. 创建在线会议

When to use: User wants to schedule a Microsoft Teams meeting
Tool sequence:
  1. MICROSOFT_TEAMS_LIST_USERS
    - Find participant user IDs [Optional]
  2. MICROSOFT_TEAMS_CREATE_MEETING
    - Create the meeting [Required]
Key parameters:
  • subject
    : Meeting title
  • start_date_time
    : ISO 8601 start time (e.g., '2024-08-15T10:00:00Z')
  • end_date_time
    : ISO 8601 end time (must be after start)
  • participants
    : Array of user objects with user_id and role
Pitfalls:
  • end_date_time must be strictly after start_date_time
  • Participants require valid Microsoft user_id (GUID) values, not emails
  • This creates a standalone meeting not linked to a calendar event
  • For calendar-linked meetings, use OUTLOOK_CALENDAR_CREATE_EVENT with is_online_meeting=true
适用场景:用户需要安排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和角色的用户对象数组
注意事项:
  • end_date_time必须严格晚于start_date_time
  • 参会者需要有效的Microsoft用户ID(GUID格式),而非邮箱地址
  • 此操作创建的是独立会议,不会关联到日历事件
  • 如果需要创建关联日历的会议,请使用OUTLOOK_CALENDAR_CREATE_EVENT并设置is_online_meeting=true

4. Manage Teams and Channels

4. 管理团队与频道

When to use: User wants to list, create, or manage teams and channels
Tool sequence:
  1. MICROSOFT_TEAMS_TEAMS_LIST
    - List all accessible teams [Required]
  2. MICROSOFT_TEAMS_GET_TEAM
    - Get details for a specific team [Optional]
  3. MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS
    - List channels in a team [Optional]
  4. MICROSOFT_TEAMS_GET_CHANNEL
    - Get channel details [Optional]
  5. MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL
    - Create a new channel [Optional]
  6. MICROSOFT_TEAMS_LIST_TEAM_MEMBERS
    - List team members [Optional]
  7. MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM
    - Add a member to the team [Optional]
Key parameters:
  • team_id
    : Team UUID
  • channel_id
    : Channel ID in thread format
  • filter
    : OData filter string (e.g., "startsWith(displayName,'Project')")
  • select
    : Comma-separated properties to return
Pitfalls:
  • TEAMS_LIST pagination: follow @odata.nextLink in large tenants
  • Private/shared channels may be omitted unless permissions align
  • GET_CHANNEL returns 404 if team_id or channel_id is wrong
  • Always source IDs from list operations; do not guess ID formats
适用场景:用户需要列出、创建或管理团队与频道
工具执行流程:
  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. Search Messages

5. 搜索消息

When to use: User wants to find messages across Teams chats and channels
Tool sequence:
  1. MICROSOFT_TEAMS_SEARCH_MESSAGES
    - Search with KQL syntax [Required]
Key parameters:
  • query
    : KQL search query (supports from:, sent:, attachments, boolean logic)
Pitfalls:
  • Newly posted messages may take 30-60 seconds to appear in search
  • Search is eventually consistent; do not rely on it for immediate delivery confirmation
  • Use message listing tools for real-time message verification
适用场景:用户需要在Teams聊天和频道中查找消息
工具执行流程:
  1. MICROSOFT_TEAMS_SEARCH_MESSAGES
    - 使用KQL语法进行搜索【必需步骤】
关键参数:
  • query
    : KQL搜索查询(支持from:、sent:、attachments、布尔逻辑)
注意事项:
  • 新发布的消息可能需要30-60秒才会出现在搜索结果中
  • 搜索是最终一致性的;请勿依赖它来确认即时送达
  • 如需实时验证消息,请使用消息列表工具

Common Patterns

常见模式

Team and Channel ID Resolution

团队与频道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:...@thread.tacv2 format)
1. 调用MICROSOFT_TEAMS_TEAMS_LIST
2. 通过displayName找到目标团队
3. 提取团队ID(UUID格式)
4. 使用team_id调用MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS
5. 通过displayName找到目标频道
6. 提取频道ID(19:...@thread.tacv2格式)

User Resolution

用户解析

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
1. 调用MICROSOFT_TEAMS_LIST_USERS
2. 通过displayName或邮箱筛选用户
3. 提取用户ID(UUID格式)
4. 用于会议参会者、聊天成员或团队操作

Pagination

分页处理

  • Teams/Users: Follow @odata.nextLink URL for next page
  • Chats: Auto-paginates up to limit; use top for page size (max 50)
  • Use
    top
    parameter to control page size
  • Continue until @odata.nextLink is absent
  • 团队/用户:跟随@odata.nextLink URL获取下一页数据
  • 聊天:自动分页至限制数量;使用top参数控制每页大小(最大50)
  • 使用
    top
    参数控制每页大小
  • 直到@odata.nextLink不存在时停止

Known Pitfalls

已知注意事项

Authentication and Permissions:
  • Different operations require different Microsoft Graph permissions
  • 403 errors indicate insufficient permissions or team access
  • Some operations require admin consent in the Azure AD tenant
ID Formats:
  • Team IDs: UUID format (e.g., '87b0560f-fc0d-4442-add8-b380ca926707')
  • Channel IDs: Thread format (e.g., '19:abc123@thread.tacv2')
  • Chat IDs: Various formats (e.g., '19:meeting_xxx@thread.v2')
  • User IDs: UUID format
  • Never guess IDs; always resolve from list operations
Rate Limits:
  • Microsoft Graph enforces throttling
  • 429 responses include Retry-After header
  • Keep requests to a few per second
  • Batch operations help reduce total request count
Message Formatting:
  • HTML content_type supports rich formatting
  • Adaptive cards require additional handling
  • Message size limit is approximately 28KB
  • Split long content into multiple messages
认证与权限:
  • 不同操作需要不同的Microsoft Graph权限
  • 403错误表示权限不足或无团队访问权限
  • 部分操作需要在Azure AD租户中获得管理员同意
ID格式:
  • 团队ID:UUID格式(例如:'87b0560f-fc0d-4442-add8-b380ca926707')
  • 频道ID:线程格式(例如:'19:abc123@thread.tacv2')
  • 聊天ID:多种格式(例如:'19:meeting_xxx@thread.v2')
  • 用户ID:UUID格式
  • 切勿猜测ID;始终从列表操作中获取
速率限制:
  • Microsoft Graph实施限流策略
  • 429响应包含Retry-After头部
  • 保持每秒请求数在几个以内
  • 批量操作有助于减少总请求数
消息格式:
  • HTML类型的content支持富文本格式
  • 自适应卡片需要额外处理
  • 消息大小限制约为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)
任务工具标识关键参数
列出团队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