Skip to Content
ResourcesIntegrationsSocial & CommunicationMicrosoft Teams

Microsoft Teams

Service domainMESSAGING
Microsoft Teams icon
Arcade Optimized

Arcade.dev LLM tools for Microsoft Teams

Author:Arcade
Version:0.6.5
Auth:User authorization via the Microsoft auth provider
25tools

Arcade's Microsoft Teams toolkit provides 25 LLM-callable tools for interacting with Microsoft Teams via the Microsoft Graph API, enabling agents to read and write messages, manage chats and channels, and look up users and teams.

Capabilities

  • Messaging — chats: Send, reply to, and retrieve messages in 1:1 and group chats; create new chats (deduplicating against existing ones).
  • Messaging — channels: Send messages and replies to team channels; retrieve channel messages and threaded replies.
  • Chat & channel metadata: Fetch metadata (members, settings, last activity) for chats and channels; list all chats the signed-in user belongs to.
  • Team & member management: List, get, and search teams the user is associated with; list and search team members (up to the Graph API's 999-member cap).
  • User & people search: Search tenant users (SearchUsers), interaction-history contacts including external-tenant contacts (SearchPeople), and the full tenant user directory (ListUsers); resolve identities by name or ID throughout all tools.
  • Identity & context: Retrieve the signed-in user's profile and Teams environment context (WhoAmI, GetSignedInUser); cross-workspace message search with eventual-consistency caveats.

OAuth

This toolkit authenticates via OAuth 2.0 with Microsoft as the identity provider. Arcade manages the OAuth flow; no credentials need to be handled manually. See the Microsoft auth provider docs for configuration details.

Available tools(25)

25 of 25 tools
Operations
Behavior
Tool nameDescriptionSecrets
Creates a Microsoft Teams chat. If the chat already exists with the specified members, the MS Graph API will return the existing chat. Provide any combination of user_ids and/or user_names. When available, prefer providing user_ids for optimal performance.
Retrieves the replies to a Microsoft Teams channel message.
Retrieves the messages in a Microsoft Teams channel. The Microsoft Graph API does not support pagination for this endpoint.
Retrieves metadata about a Microsoft Teams channel and its members. Provide either a channel_id or channel_name, not both. When available, prefer providing a channel_id for optimal performance. The Microsoft Graph API returns only up to the first 999 members in the channel. This tool does not return messages exchanged in the channel. To retrieve channel messages, use the `Teams.GetChannelMessages` tool. It is not necessary to call `Teams.ListTeams` before calling this tool. If the user does not provide a team_id_or_name, the tool will try to find a unique team to use.
Retrieves a Microsoft Teams chat message. When user_names is provided instead of chat_id, this tool also searches the caller's People (contacts and interaction history) to resolve the chat.
Retrieves messages from a Microsoft Teams chat (individual or group). Provide one of chat_id OR any combination of user_ids and/or user_names. When available, prefer providing a chat_id or user_ids for optimal performance. If the user provides user name(s), DO NOT CALL THE `Teams.SearchUsers` or `Teams.SearchPeople` tools first. Instead, provide the user name(s) directly to this tool through the `user_names` argument. It is not necessary to provide the currently signed in user's name/id, so do not call `Teams.GetSignedInUser` before calling this tool. Messages will be sorted in descending order by the messages' `created_datetime` field. The Microsoft Teams API does not support pagination for this tool.
Retrieves metadata about a Microsoft Teams chat. Provide exactly one of chat_id or user_ids/user_names. When available, prefer providing a chat_id or user_ids for optimal performance. If multiple roup chats exist with those exact members, returns the most recently updated one. Max 20 DIFFERENT users can be provided in user_ids/user_names. This tool DOES NOT return messages in a chat. Use the `Teams.GetChatMessages` tool to get chat messages. When user_names is provided instead of chat_id, this tool also searches the caller's People (contacts and interaction history) to resolve the chat.
Get the user currently signed in Microsoft Teams. This tool is not necessary to call before calling other tools.
Retrieves metadata about a team in Microsoft Teams. Provide one of team_id OR team_name, never both. When available, prefer providing a team_id for optimal performance. If team_id nor team_name are provided: 1) if the user has a single team, the tool will retrieve it; 2) if the user has multiple teams, an error will be returned with a list of all teams to pick from.
Lists channels in Microsoft Teams (including shared incoming channels). This tool does not return messages nor members in the channels. To retrieve channel messages, use the `Teams.GetChannelMessages` tool. To retrieve channel members, use the `Teams.ListChannelMembers` tool.
List the Microsoft Teams chats to which the current user is a member of.
Lists the members of a team in Microsoft Teams. Provide one of team_id OR team_name, never both. When available, prefer providing a team_id for optimal performance. If team_id nor team_name are provided: 1) if the user has a single team, the tool will use it; 2) if the user has multiple teams, an error will be returned with a list of all teams to pick from. The Microsoft Graph API returns only up to the first 999 members.
Lists the teams the current user is associated with in Microsoft Teams.
Lists the users in the Microsoft Teams tenant. The Microsoft Graph API returns only up to the first 999 users.
Sends a reply to a Microsoft Teams channel message. When available, prefer providing a channel_id for optimal performance. It is not necessary to call `Teams.ListTeams` before calling this tool. If the user does not provide a team_id_or_name, the tool will try to find a unique team to use.
Sends a reply to a Microsoft Teams chat message. Provide exactly one of chat_id or user_ids/user_names. When available, prefer providing a chat_id or user_ids for optimal performance. If the user provides user name(s), DO NOT CALL THE `Teams.SearchUsers` or `Teams.SearchPeople` tools first. Instead, provide the user name(s) directly to this tool through the `user_names` argument. It is not necessary to provide the currently signed in user's name/id, so do not call `Teams.GetSignedInUser` before calling this tool either.
Searches for channels in a given Microsoft Teams team.
Searches for messages across Microsoft Teams chats and channels. Note: the Microsoft Graph API search is not strongly consistent. Recent messages may not be included in search results.
Searches for people the user has interacted with in Microsoft Teams and other 365 products. This tool only returns users that the currently signed in user has interacted with. It may also include people that are part of external tenants/organizations. If you need to retrieve users that may not have interacted with the current user and/or that are exclusively part of the same tenant, use the `Teams.SearchUsers` tool instead.
Searches for members of a team in Microsoft Teams. Provide one of team_id OR team_name, never both. When available, prefer providing a team_id for optimal performance. If team_id nor team_name are provided: 1) if the user has a single team, the tool will use it; 2) if the user has multiple teams, an error will be raised with a list of available teams to pick from. The Microsoft Graph API returns only up to the first 999 members of a team.
Searches for teams available to the current user in Microsoft Teams.
Searches for users in the Microsoft Teams tenant. This tool only return users that are directly linked to the tenant the current signed in user is a member of. If you need to retrieve users that have interacted with the current user but are from external tenants/organizations, use `Teams.SearchPeople`, instead. The Microsoft Graph API returns only up to the first 999 users.
Sends a message to a Microsoft Teams channel. When available, prefer providing a channel_id for optimal performance. It is not necessary to call `Teams.ListTeams` before calling this tool. If the user does not provide a team_id_or_name, the tool will try to find a unique team to use.
Sends a message to a Microsoft Teams chat. Provide exactly one of chat_id or user_ids/user_names. When available, prefer providing a chat_id or user_ids for optimal performance. If the user provides user name(s), DO NOT CALL THE `Teams.SearchUsers` or `Teams.SearchPeople` tools first. Instead, provide the user name(s) directly to this tool through the `user_names` argument. It is not necessary to provide the currently signed in user's name/id, so do not call `Teams.GetSignedInUser` before calling this tool either.
Get information about the current user and their Microsoft Teams environment.
Last updated on