Smithery's MCP Proxy and managed identity shut down on October 31. See what's changing

SmitherySign up for Arcade

Microsoft Teams

Arcade toolkit · docs.arcade.dev

Arcade's Microsoft Teams toolkit lets LLM agents interact with Teams chats, channels, meetings, and users via the Microsoft Graph API, acting on behalf of the signed-in user.

Capabilities

  • Messaging — Send, edit, soft-delete, and react to messages in 1:1 chats, group chats, meeting chats, and channels; reply to channel messages with full thread support; quote-reply in non-channel chats where native threading is unsupported.
  • Chat & channel management — Create chats (with automatic deduplication for 1:1), update group chat rosters, list and search chats, retrieve or search channels within a team.
  • Teams & member discovery — List teams the user belongs to, search across the org by name prefix, list or search team members (up to 999 per Graph API limit), resolve users by name or ID within the tenant or from interaction history.
  • Meeting lifecycle — Schedule Teams meetings with calendar invites and join links, list meetings by date range, cancel meetings (organizer only), retrieve meeting details.
  • Transcripts — List generated transcripts for a meeting, fetch transcript content with speaker attribution (falls back to unattributed text automatically).
  • Search — Full-text search across messages (eventual consistency; recent messages may lag), people search across 365 interaction history (falls back to tenant user search when relevance graph omits a known contact), and user/team/channel search.

Tools38

  • MicrosoftTeams_CancelMeeting

    Cancel a Microsoft Teams meeting the signed-in user organizes, notifying attendees. Only the meeting's organizer can cancel it; cancelling a meeting organized by someone else fails.

  • MicrosoftTeams_CreateChat

    Create a Microsoft Teams chat. For a 1:1 chat (exactly one other member besides the caller), the MS Graph API deduplicates reliably: if a one-on-one chat already exists with that member, this returns the existing chat instead of creating a new one. For a group chat (two or more other members), the MS Graph API does NOT guarantee dedup: a new group chat may be created even when a group chat with the exact same member set already exists. To reuse an existing group chat, look it up first (e.g. by its members or in the user's chat list) rather than relying on this tool to return it. Provide any combination of user_ids and/or user_names. When available, prefer providing user_ids for optimal performance.

  • MicrosoftTeams_CreateMeeting

    Schedule a new Microsoft Teams online meeting on the signed-in user's calendar. Creates a calendar event with an attached Teams meeting (join link, dial-in info) and sends invites to any attendees provided. The response's join_url is what attendees use to join.

  • MicrosoftTeams_DeleteChannelMessage

    Delete a previously sent Microsoft Teams channel message. This soft-deletes the message: it is marked as deleted and its content is replaced with a placeholder for other members, not permanently erased. Only the original sender's own message can be deleted.

  • MicrosoftTeams_DeleteChatMessage

    Delete a previously sent Microsoft Teams chat message. This soft-deletes the message: it is marked as deleted and its content is replaced with a placeholder for other members, not permanently erased. Only the original sender's own message can be deleted. Provide exactly one of chat_id or user_ids/user_names. When available, prefer providing a chat_id or user_ids for optimal performance.

  • MicrosoftTeams_GetChannelMessageReplies

    Retrieve the replies to a Microsoft Teams channel message.

  • MicrosoftTeams_GetChannelMessages

    Retrieve the messages in a Microsoft Teams channel, newest first. The channel-messages endpoint rejects server-side date filtering outright, so start_datetime and end_datetime are applied client-side over the most recent messages this tool walks from upstream: it may miss older matches beyond that window, and the response's scanned_count field reports how many messages were inspected before filtering.

  • MicrosoftTeams_GetChannelMetadata

    Retrieve metadata about a Microsoft Teams channel and its members. Provide exactly one of channel_id, channel_name, or channel_id_or_name. 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. It is not necessary to list the user's teams 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.

  • MicrosoftTeams_GetChatMessageById

    Retrieve 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. 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.

  • MicrosoftTeams_GetChatMessages

    Retrieve messages from a Microsoft Teams chat (individual, group, or meeting). 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 SEARCH FOR THE USERS OR PEOPLE 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 look up the signed-in user's profile before calling this tool. Messages will be sorted in descending order by the messages' created_datetime field. Date filters use creation time in UTC; editing a message does not change its selected period. Messages without creation timestamps are excluded when a date bound is provided. Only ordinary messages are returned; system events and unknown or missing message types are excluded. The tool scans subsequent pages until the message limit is reached or history ends. If the scan exceeds the pagination timeout, it raises an error rather than returning incomplete results. Echo pagination.next_page_token to continue with older messages; For continuation calls, use the previous response's chat.id as chat_id and omit user_ids and user_names; participant lookup can select another chat as activity changes. pagination.is_last_page is true only when the selected history is exhausted. Graph does not provide a snapshot: messages added or removed during pagination can shift results.

  • MicrosoftTeams_GetChatMetadata

    Retrieve 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. 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.

  • MicrosoftTeams_GetMeeting

    Retrieve a Microsoft Teams meeting scheduled on the signed-in user's calendar. The meeting_id comes from a meeting listing, or from the id returned after scheduling a new meeting.

  • MicrosoftTeams_GetMeetingTranscript

    Fetch the text content of a Teams meeting transcript. Prefers speaker-attributed content; when the signed-in user's role does not permit speaker attribution, automatically falls back to unattributed text instead of failing outright. The format field on the response states which one was returned.

  • MicrosoftTeams_GetSignedInUser

    Get the current user's full profile (name, job title, employment, contacts, location). Use this to fetch profile details about the signed-in user, not to confirm caller identity or tenant context before acting. This tool is not necessary to call before calling other tools.

  • MicrosoftTeams_GetTeam

    Retrieve 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. Retrieving a team by ID requires access under the signed-in account. A team discovered through organization-wide search may not be accessible to that account.

  • MicrosoftTeams_ListChannels

    List the channels owned by a Microsoft Teams team (standard, private, and shared channels it hosts). Does not include channels shared into this team by another team. This tool does not return messages nor members in the channels.

  • MicrosoftTeams_ListChats

    List the Microsoft Teams chats to which the current user is a member of.

  • MicrosoftTeams_ListMeetings

    List Microsoft Teams online meetings on the signed-in user's calendar within a date range, oldest first. Only returns calendar events that are Teams online meetings; regular (non-meeting) calendar events in the same date range are excluded.

  • MicrosoftTeams_ListMeetingTranscripts

    List the transcripts Microsoft Graph has generated for a Teams meeting, most recent first. Works for meetings the signed-in user attended without organizing them, not just ones they organize. Returns an empty list for a meeting that has not yet occurred or has no generated transcript, rather than an error. Requires the tenant to have transcript access enabled for Teams; when it is not, the call fails naming the tenant-level setting an admin must enable.

  • MicrosoftTeams_ListTeamMembers

    List 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.

  • MicrosoftTeams_ListTeams

    List the teams the current user is associated with in Microsoft Teams.

  • MicrosoftTeams_ListUsers

    List the users in the Microsoft Teams tenant.

  • MicrosoftTeams_ReactToChannelMessage

    Add or remove an emoji reaction on a Microsoft Teams channel message.

  • MicrosoftTeams_ReactToChatMessage

    Add or remove an emoji reaction on 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.

  • MicrosoftTeams_ReplyToChannelMessage

    Send a reply to a Microsoft Teams channel message. When available, prefer providing a channel_id for optimal performance. It is not necessary to list the user's teams 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.

  • MicrosoftTeams_ReplyToChatMessage

    Send a reply to a Microsoft Teams chat message. Known limitation: the Microsoft Graph API currently rejects threaded replies in 1:1, group, and meeting chats with an "unsupported item types" error, regardless of chat, message, or reply content. This does not affect channel messages, which support threaded replies. For 1:1, group, and meeting chats, send a new chat message that quotes the target message instead, which gives reply-with-context without relying on native threading. 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 SEARCH FOR THE USERS OR PEOPLE 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 look up the signed-in user's profile before calling this tool either. 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.

  • MicrosoftTeams_SearchChannels

    Search for channels owned by a given Microsoft Teams team (standard, private, and shared channels it hosts). Does not include channels shared into this team by another team.

  • MicrosoftTeams_SearchMessages

    Search 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.

  • MicrosoftTeams_SearchPeople

    Search 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, search the tenant's users instead. Results are ranked by an opaque relevance graph, not a plain name match: a person the caller has genuinely messaged or chatted with can still be absent from the results for a given keyword. Do not conclude "no such person" from an empty result; fall back to searching the tenant's users or a team's members before reporting that no match was found.

  • MicrosoftTeams_SearchTeamMembers

    Search 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.

  • MicrosoftTeams_SearchTeams

    Search for teams by name prefix across the Microsoft Teams organization. Results include teams the signed-in user has not joined. Discovery does not guarantee access to a team's metadata or channels; those reads depend on the account's access.

  • MicrosoftTeams_SearchUsers

    Search 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, search the people the user has interacted with instead.

  • MicrosoftTeams_SendMessageToChannel

    Send a message to a Microsoft Teams channel. When available, prefer providing a channel_id for optimal performance. It is not necessary to list the user's teams 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.

  • MicrosoftTeams_SendMessageToChat

    Send 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. Set quote_message_id to reply to an earlier message in the chat: Microsoft Graph does not support true threaded replies in 1:1, group, or meeting chats (only channel messages support that), so this quotes the target message's sender and content at the top of the new message instead of threading under it. If the user provides user name(s), DO NOT SEARCH FOR THE USERS OR PEOPLE 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 look up the signed-in user's profile before calling this tool either. 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.

  • MicrosoftTeams_UpdateChannelMessage

    Edit the text content of a previously sent Microsoft Teams channel message. Only the original sender's own message can be edited. This replaces the entire message body with new_content; it does not append a reply or thread a new message under it.

  • MicrosoftTeams_UpdateChatMembers

    Add members to, or remove members from, the roster of an existing Microsoft Teams group chat. Unlike creating a chat, which makes a brand-new chat (or reuses one only when the requested member set is an exact match for an existing chat), this tool mutates chat_id's roster in place, preserving the chat's id and message history for all members. Only group chats support roster changes after creation; oneOnOne chats cannot be modified this way. Provide at least one of user_ids or user_names.

  • MicrosoftTeams_UpdateChatMessage

    Edit the text content of a previously sent Microsoft Teams chat message. Only the original sender's own message can be edited. This replaces the entire message body with new_content; it does not send a reply or a new 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.

  • MicrosoftTeams_WhoAmI

    Get information about the current user and their Microsoft Teams environment. Use this to confirm caller identity and tenant context (e.g. before acting on the user's behalf), not to fetch a person's profile details. For a richer profile (job title, employment, contacts, location), fetch the signed-in user's full profile instead.