Microsoft Teams
Service domainMESSAGING
Arcade Optimized
Arcade.dev LLM tools for Microsoft Teams
25tools
Microsoft Teams Toolkit
Arcade's Microsoft Teams toolkit lets LLMs interact with Microsoft Teams on behalf of authenticated users — reading and sending messages, managing chats and channels, and resolving users and teams via the Microsoft Graph API.
Capabilities
- Messaging — chats & channels: Read messages (with replies), send messages, and reply to messages in both direct/group chats and team channels; search across all messages tenant-wide.
- Chat & channel management: Create chats (deduplicates against existing chats), list chats the user belongs to, retrieve or search channels within a team, and fetch full chat or channel metadata including members.
- Team & member discovery: List, retrieve, and search teams the current user is associated with; list and search team members (up to 999 per Graph API limits).
- User & people resolution: Look up tenant users (
SearchUsers/ListUsers) or interaction-history contacts including external org members (SearchPeople); tools resolve names to IDs internally so callers rarely need to pre-resolve identities. - Session context: Retrieve the currently signed-in user's profile and environment info (
GetSignedInUser,WhoAmI) — useful for bootstrapping agent context.
OAuth
This toolkit uses OAuth 2.0 delegated auth via the Microsoft provider. See the Arcade Microsoft auth provider docs for setup instructions, required app registrations, and scope details.
Available tools(25)
25 of 25 tools
Operations
Behavior
| Tool name | Description | Secrets | |
|---|---|---|---|
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. |
Get Building
Last updated on