microsoft-teams-automation
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMicrosoft 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 with toolkit
RUBE_MANAGE_CONNECTIONSmicrosoft_teams - Always call first to get current tool schemas
RUBE_SEARCH_TOOLS
- 已连接Rube MCP(需可使用RUBE_SEARCH_TOOLS)
- 通过并使用
RUBE_MANAGE_CONNECTIONS工具包,建立有效的Microsoft Teams连接microsoft_teams - 请始终先调用以获取最新的工具架构
RUBE_SEARCH_TOOLS
Setup
设置步骤
Get Rube MCP: Add as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
https://rube.app/mcp- Verify Rube MCP is available by confirming responds
RUBE_SEARCH_TOOLS - Call with toolkit
RUBE_MANAGE_CONNECTIONSmicrosoft_teams - If connection is not ACTIVE, follow the returned auth link to complete Microsoft OAuth
- Confirm connection status shows ACTIVE before running any workflows
获取Rube MCP:在客户端配置中添加作为MCP服务器。无需API密钥——只需添加该端点即可使用。
https://rube.app/mcp- 确认可正常响应,以此验证Rube MCP是否可用
RUBE_SEARCH_TOOLS - 调用并指定工具包为
RUBE_MANAGE_CONNECTIONSmicrosoft_teams - 如果连接状态未显示为ACTIVE,请按照返回的授权链接完成Microsoft OAuth认证
- 在运行任何工作流之前,确认连接状态为ACTIVE
Core Workflows
核心工作流
1. Send Channel Messages
1. 发送频道消息
When to use: User wants to post a message to a Teams channel
Tool sequence:
- - List teams to find target team [Prerequisite]
MICROSOFT_TEAMS_TEAMS_LIST - - List channels in the team [Prerequisite]
MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS - - Post the message [Required]
MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE
Key parameters:
- : UUID of the team (from TEAMS_LIST)
team_id - : Channel ID (from LIST_CHANNELS, format: '19:...@thread.tacv2')
channel_id - : Message text or HTML
content - : 'text' or 'html'
content_type
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频道发布消息
工具执行流程:
- - 列出所有团队以找到目标团队【前提步骤】
MICROSOFT_TEAMS_TEAMS_LIST - - 列出目标团队下的频道【前提步骤】
MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS - - 发布消息【必需步骤】
MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE
关键参数:
- : 团队的UUID(来自TEAMS_LIST的结果)
team_id - : 频道ID(来自LIST_CHANNELS的结果,格式为'19:...@thread.tacv2')
channel_id - : 消息文本或HTML内容
content - : 'text' 或 'html'
content_type
注意事项:
- 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:
- - List existing chats [Optional]
MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS - - Find users for new chats [Optional]
MICROSOFT_TEAMS_LIST_USERS - - Create a new chat [Optional]
MICROSOFT_TEAMS_TEAMS_CREATE_CHAT - - Send the message [Required]
MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE
Key parameters:
- : Chat ID (from GET_ALL_CHATS or CREATE_CHAT)
chat_id - : Message content
content - : 'text' or 'html'
content_type - : 'oneOnOne' or 'group' (for CREATE_CHAT)
chatType - : Array of member objects (for CREATE_CHAT)
members
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
适用场景:用户需要发送一对一或群组聊天消息
工具执行流程:
- - 列出所有现有聊天【可选步骤】
MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS - - 查找新聊天的成员用户【可选步骤】
MICROSOFT_TEAMS_LIST_USERS - - 创建新聊天【可选步骤】
MICROSOFT_TEAMS_TEAMS_CREATE_CHAT - - 发送消息【必需步骤】
MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE
关键参数:
- : 聊天ID(来自GET_ALL_CHATS或CREATE_CHAT的结果)
chat_id - : 消息内容
content - : 'text' 或 'html'
content_type - : 'oneOnOne' 或 'group'(用于CREATE_CHAT)
chatType - : 成员对象数组(用于CREATE_CHAT)
members
注意事项:
- 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:
- - Find participant user IDs [Optional]
MICROSOFT_TEAMS_LIST_USERS - - Create the meeting [Required]
MICROSOFT_TEAMS_CREATE_MEETING
Key parameters:
- : Meeting title
subject - : ISO 8601 start time (e.g., '2024-08-15T10:00:00Z')
start_date_time - : ISO 8601 end time (must be after start)
end_date_time - : Array of user objects with user_id and role
participants
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会议
工具执行流程:
- - 查找参会者的用户ID【可选步骤】
MICROSOFT_TEAMS_LIST_USERS - - 创建会议【必需步骤】
MICROSOFT_TEAMS_CREATE_MEETING
关键参数:
- : 会议标题
subject - : ISO 8601格式的开始时间(例如:'2024-08-15T10:00:00Z')
start_date_time - : ISO 8601格式的结束时间(必须晚于开始时间)
end_date_time - : 包含user_id和角色的用户对象数组
participants
注意事项:
- 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:
- - List all accessible teams [Required]
MICROSOFT_TEAMS_TEAMS_LIST - - Get details for a specific team [Optional]
MICROSOFT_TEAMS_GET_TEAM - - List channels in a team [Optional]
MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS - - Get channel details [Optional]
MICROSOFT_TEAMS_GET_CHANNEL - - Create a new channel [Optional]
MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL - - List team members [Optional]
MICROSOFT_TEAMS_LIST_TEAM_MEMBERS - - Add a member to the team [Optional]
MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM
Key parameters:
- : Team UUID
team_id - : Channel ID in thread format
channel_id - : OData filter string (e.g., "startsWith(displayName,'Project')")
filter - : Comma-separated properties to return
select
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
适用场景:用户需要列出、创建或管理团队与频道
工具执行流程:
- - 列出所有可访问的团队【必需步骤】
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
关键参数:
- : 团队UUID
team_id - : 线程格式的频道ID
channel_id - : OData筛选字符串(例如:"startsWith(displayName,'Project')")
filter - : 逗号分隔的要返回的属性列表
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:
- - Search with KQL syntax [Required]
MICROSOFT_TEAMS_SEARCH_MESSAGES
Key parameters:
- : KQL search query (supports from:, sent:, attachments, boolean logic)
query
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聊天和频道中查找消息
工具执行流程:
- - 使用KQL语法进行搜索【必需步骤】
MICROSOFT_TEAMS_SEARCH_MESSAGES
关键参数:
- : KQL搜索查询(支持from:、sent:、attachments、布尔逻辑)
query
注意事项:
- 新发布的消息可能需要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 operations1. 调用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 parameter to control page size
top - 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
快速参考
| 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) |
| 任务 | 工具标识 | 关键参数 |
|---|---|---|
| 列出团队 | MICROSOFT_TEAMS_TEAMS_LIST | filter, select, top |
| 获取团队详情 | MICROSOFT_TEAMS_GET_TEAM | team_id |
| 列出频道 | MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS | team_id, filter |
| 获取频道详情 | MICROSOFT_TEAMS_GET_CHANNEL | team_id, channel_id |
| 创建频道 | MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL | team_id, displayName |
| 发布频道消息 | MICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGE | team_id, channel_id, content |
| 列出聊天 | MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS | user_id, limit |
| 创建聊天 | MICROSOFT_TEAMS_TEAMS_CREATE_CHAT | chatType, members, topic |
| 发布聊天消息 | MICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGE | chat_id, content |
| 创建会议 | MICROSOFT_TEAMS_CREATE_MEETING | subject, start_date_time, end_date_time |
| 列出用户 | MICROSOFT_TEAMS_LIST_USERS | filter, select, top |
| 列出团队成员 | MICROSOFT_TEAMS_LIST_TEAM_MEMBERS | team_id |
| 添加团队成员 | MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAM | team_id, user_id |
| 搜索消息 | MICROSOFT_TEAMS_SEARCH_MESSAGES | query |
| 获取聊天消息 | MICROSOFT_TEAMS_GET_CHAT_MESSAGE | chat_id, message_id |
| 列出已加入的团队 | MICROSOFT_TEAMS_LIST_USER_JOINED_TEAMS | 无 |