Microsoft Teams Automation via Rube MCP
Automate Microsoft Teams operations through Composio's Microsoft Teams toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/microsoft_teams
Prerequisites
- •Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- •Active Microsoft Teams connection via
RUBE_MANAGE_CONNECTIONSwith toolkitmicrosoft_teams - •Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
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.
- •Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - •Call
RUBE_MANAGE_CONNECTIONSwith toolkitmicrosoft_teams - •If connection is not ACTIVE, follow the returned auth link to complete Microsoft OAuth
- •Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Send Channel Messages
When to use: User wants to post a message to a Teams channel
Tool sequence:
- •
MICROSOFT_TEAMS_TEAMS_LIST- List teams to find target team [Prerequisite] - •
MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS- List channels in the team [Prerequisite] - •
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)
2. Send Chat Messages
When to use: User wants to send a direct or group chat message
Tool sequence:
- •
MICROSOFT_TEAMS_CHATS_GET_ALL_CHATS- List existing chats [Optional] - •
MICROSOFT_TEAMS_LIST_USERS- Find users for new chats [Optional] - •
MICROSOFT_TEAMS_TEAMS_CREATE_CHAT- Create a new chat [Optional] - •
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
3. Create Online Meetings
When to use: User wants to schedule a Microsoft Teams meeting
Tool sequence:
- •
MICROSOFT_TEAMS_LIST_USERS- Find participant user IDs [Optional] - •
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
4. Manage Teams and Channels
When to use: User wants to list, create, or manage teams and channels
Tool sequence:
- •
MICROSOFT_TEAMS_TEAMS_LIST- List all accessible teams [Required] - •
MICROSOFT_TEAMS_GET_TEAM- Get details for a specific team [Optional] - •
MICROSOFT_TEAMS_TEAMS_LIST_CHANNELS- List channels in a team [Optional] - •
MICROSOFT_TEAMS_GET_CHANNEL- Get channel details [Optional] - •
MICROSOFT_TEAMS_TEAMS_CREATE_CHANNEL- Create a new channel [Optional] - •
MICROSOFT_TEAMS_LIST_TEAM_MEMBERS- List team members [Optional] - •
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
5. Search Messages
When to use: User wants to find messages across Teams chats and channels
**To