Skip to content
Elaichi Elaichi

IM

Microsoft Teams

Connect Microsoft Teams once and hand every teammate a governed MCP endpoint with 42 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.

Microsoft Teams

Automations & dashboards

From answering questions to doing the work

A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.

Automations

Put Microsoft Teams work on a schedule.

A trigger starts a sequence of steps: call a Microsoft Teams tool, transform the result, branch, wait, and ask a person when it matters.

Microsoft Teams digest

Run 418 · started 2 minutes ago · on behalf of Emma Laurent

  1. Schedule

    Every weekday at 08:00

    0.2s
  2. Fetch channels

    Microsoft Teams

    1.4s
  3. Group by owner

    Transform

    0.1s
  4. Draft the digest

    Agent step

    Ran with 4 tools, returned a structured summary

    6.2s
  5. Approve the digest

    Needs approval

    Assigned to Michael Brennan

    Approve
  6. Post the digest

    Microsoft Teams

    Queued

Collections and dashboards

Report on Microsoft Teams without asking.

Collections hold your own data, written by an automation and read by a dashboard that refreshes on a schedule.

Microsoft Teams health

Refreshed 4 minutes ago · every 15 minutes · from the channels collection

Live

Channels

1,284 ↓ 12%

Chats

96 ↓ 8%

Needs attention

3 ↑ 2

Updated this week

412 ↑ 9%

Channels created

Last 14 days

By workspace

Share of activity

Engineering 34%

Product 27%

Support 21%

Sales 18%

AI tools

Microsoft Teams tools for your AI agents

42 tools are ready to call through Elaichi's MCP endpoint the moment you connect Microsoft Teams, governed by the same roles, restrictions, and audit log as everything else in Elaichi.

list_all_msteams_teams

List all teams in Microsoft Teams. Returns id, displayName, and description for each team.

get_single_msteams_team_by_id

Get information about a specific team in Microsoft Teams by id. Returns the team's properties and relationships.

list_all_msteams_team_members

List members of a team in Microsoft Teams by team id. Returns member id, roles, displayName, userId, and email fields in the response.

get_single_msteams_team_member_by_id

Get member of team by team_id and id in Microsoft Teams. Returns fields id, roles (member roles), displayName, userId, and email.

delete_a_msteams_team_member_by_id

Remove a member from a team in Microsoft Teams using team_id and id. Returns 204 No Content on success.

list_all_msteams_search

Run a search query with specified requests in Microsoft Teams. Requires requests array with entityTypes, region, query with queryString, from, and size. Returns searchTerms, hitsContainers with hits including hitId, rank, summary, and resource details.

list_all_msteams_users

Get a list of user objects in Microsoft Teams. Returns default properties including businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname, and userPrincipalName.

list_all_msteams_me

Get information about the signed-in user in Microsoft Teams. Returns default user properties including businessPhones, displayName, givenName, id, jobTitle, mail, mobilePhone, officeLocation, preferredLanguage, surname, and userPrincipalName.

list_all_msteams_channels

Get list of all channels in a team in Microsoft Teams. Requires team id. Returns channel id, createdDateTime, displayName, description, membershipType, tenantId, and isArchived status.

get_single_msteams_channel_by_id

Get properties and relationships of a specific channel in Microsoft Teams by team_id and id. Returns id, createdDateTime, displayName, description, membershipType, and isArchived fields.

create_a_msteams_channel

Create a new channel in a team in Microsoft Teams using team_id. Returns channel id, displayName, description, membershipType, and webUrl. Supports standard, private (max 200 members), and shared channels with limitations on owners for shared channels.

update_a_msteams_channel_by_id

Update the properties of the specified channel in Microsoft Teams using team_id and id. Note: membershipType cannot be updated. Returns 204 No Content on success.

delete_a_msteams_channel_by_id

Delete a channel by team_id and id in Microsoft Teams. Returns 204 No Content on success. Note: There is a known issue with application permissions for this API.

list_all_msteams_chats

Get list of chats for user with user_id in Microsoft Teams. Returns chat id, topic, createdDateTime, lastUpdatedDateTime, chatType, chatViewpoint (isHidden, lastMessageReadDateTime), webUrl, and isHiddenForAllMembers.

get_single_msteams_chat_by_id

Get a specific chat in Microsoft Teams by id. Returns fields such as id, topic, createdDateTime, lastUpdatedDateTime, chatType, webUrl, tenantId, onlineMeetingInfo, viewpoint, isHiddenForAllMembers, and may include members or lastMessagePreview if expanded.

create_a_msteams_chat

Create a new chat in Microsoft Teams with required chatType and members. Returns chat id, topic, createdDateTime, lastUpdatedDateTime, and chatType. Only one one-on-one chat allowed between two members.

update_a_msteams_chat_by_id

Update a chat's topic by id in Microsoft Teams. Requires the chat to be of type 'group'. Returns id, topic, createdDateTime, lastUpdatedDateTime, and chatType fields in the response.

delete_a_msteams_chat_by_id

Delete a chat by id in Microsoft Teams. Only tenant admins and Teams service admins can perform this operation. Supports deletion of 1:1, meeting, and group chats but not channel chats. Returns 204 No Content on success.

list_all_msteams_chat_messages

Get list of messages in a chat in Microsoft Teams by chat id. Returns message id, messageType, createdDateTime, lastModifiedDateTime, from user info, body content, and other message details.

get_single_msteams_chat_message_by_id

Get a specific chat message in Microsoft Teams using chat_id and id. Returns fields such as id, createdDateTime, from, body, attachments, mentions, and reactions in the response.

create_a_msteams_chat_message

Send a new chat message in the specified chat in Microsoft Teams. Requires chat id and message body content. Returns the created message with fields id, createdDateTime, from user info, and message body content.

update_a_msteams_chat_message_by_id

Update a chatMessage by id in Microsoft Teams channel with properties like messageType, body, attachments, mentions, reactions, and messageHistory. Only policyViolation can be updated with application permissions. Returns 204 No Content for delegated and 200 OK for application permissions.

delete_a_msteams_chat_message_by_id

Soft-delete a specific chat message in a channel in Microsoft Teams. Requires team_id, channel_id, and id. Returns a 204 No Content response if successful.

list_all_msteams_channel_messages

Get list of channel messages for team_id and channel_id in Microsoft Teams. Returns messages sorted by last modified date including id, createdDateTime, lastModifiedDateTime, from user info, body content, webUrl, and channelIdentity.

get_single_msteams_channel_message_by_id

Get a specific channel-message in Microsoft Teams using team_id, channel_id, and id. Returns fields such as id, createdDateTime, body, from, attachments, mentions, reactions, and channelIdentity.

create_a_msteams_channel_message

Send a new chatMessage in a channel in Microsoft Teams. Requires team_id and channel_id. Returns fields including id, createdDateTime, body content, from user info, and webUrl.

update_a_msteams_channel_message_by_id

Update a Microsoft Teams channel message by id in team_id and channel_id. Supports updating all chatMessage properties except policyViolation with delegated permissions, or only policyViolation with application permissions. Returns 204 No Content for delegated, 200 OK for application permissions.

delete_a_msteams_channel_message_by_id

Soft-delete a specific channel message in Microsoft Teams. Requires team_id, channel_id, and id. Returns 204 No Content if successful.

list_all_msteams_joined_teams

List the teams in Microsoft Teams that the signed-in user is a direct member of. Returns id, displayName, and description for each team. Only direct memberships are returned - teams the user belongs to through a nested group are not included.

list_all_msteams_user_chat_messages

List messages in a specific chat in Microsoft Teams on behalf of a given user, scoped by user_id and chat_id. Returns messages including id, createdDateTime, lastModifiedDateTime, from user info, body content, chatId, and webUrl. Under delegated user auth, user_id must be the calling user or Microsoft Graph returns 403 'User Id must match the api caller when called in delegated mode'; reading another user's chat needs application permissions. Use chat-messages instead to read the signed-in user's own chats.

list_all_msteams_all_channel_messages

List messages across every channel of a team in Microsoft Teams in a single call, scoped by team_id. Returns messages including id, createdDateTime, lastModifiedDateTime, from user info, body content, webUrl, and channelIdentity so the originating channel can be identified. This is a Microsoft Teams export API that works only with application permissions - under delegated user auth Microsoft Graph returns 412 'Requested API is not supported in delegated context'. It also requires protected API access approved by Microsoft.

create_a_msteams_teams_app

Publish a new app to the Microsoft Teams app catalog for the organization. The request body is the raw Teams app package - a .zip containing manifest.json and the app icons - sent as application/octet-stream, not JSON. Returns the created teamsApp including id, externalId, displayName, and distributionMethod. Requires AppCatalog.Submit or AppCatalog.ReadWrite.All, which are not in this integration's default scope set.

list_all_msteams_teams_apps

List apps in the Microsoft Teams app catalog for the organization. Returns id, externalId, displayName, and distributionMethod for each app, plus appDefinitions when expanded. Requires one of AppCatalog.Read.All, AppCatalog.ReadWrite.All, Directory.Read.All, or Directory.ReadWrite.All; these are not in this integration's default scope set, so a connected account without them gets 403 from Microsoft Graph.

get_single_msteams_teams_app_by_id

Get a single app from the Microsoft Teams app catalog by id. Returns id, externalId, displayName, and distributionMethod for the matching app. Implemented as a filtered catalog query, so the response is an array containing zero or one app. Requires one of AppCatalog.Read.All, AppCatalog.ReadWrite.All, Directory.Read.All, or Directory.ReadWrite.All; these are not in this integration's default scope set.

update_a_msteams_teams_app_by_id

Publish a new version of an existing app in the Microsoft Teams app catalog by id. The request body is the raw Teams app package - a .zip containing manifest.json and the app icons - sent as application/octet-stream, not JSON, and the manifest version must be higher than the version already published. Returns 204 No Content on success. Requires AppCatalog.Submit or AppCatalog.ReadWrite.All, which are not in this integration's default scope set.

list_all_msteams_organization

Get the Microsoft Entra organization (tenant) that the connected Microsoft Teams account belongs to. Returns a single-item array with id, displayName, verifiedDomains, tenantType, createdDateTime, street, city, state, postalCode, country, countryLetterCode, businessPhones, preferredLanguage, technicalNotificationMails, securityComplianceNotificationMails, marketingNotificationEmails, privacyProfile, assignedPlans, provisionedPlans, and the onPremises sync fields. The id returned here is the tenant id used to correlate incoming change notifications.

list_all_msteams_subscriptions

List the active Microsoft Graph change-notification subscriptions owned by the connected account, which drive Microsoft Teams webhooks. Returns id, resource, changeType, notificationUrl, lifecycleNotificationUrl, expirationDateTime, clientState, applicationId, and creatorId for each subscription.

get_single_msteams_subscription_by_id

Get a single Microsoft Graph change-notification subscription by id. Returns id, resource, changeType, notificationUrl, lifecycleNotificationUrl, expirationDateTime, clientState, applicationId, and creatorId.

create_a_msteams_subscription

Create a Microsoft Graph change-notification subscription so Microsoft Teams pushes events to a notificationUrl. Requires resource, changeType, notificationUrl, and expirationDateTime. Microsoft validates the notificationUrl synchronously by POSTing a validationToken that must be echoed back within 10 seconds. The maximum lifetime depends on the resource - Teams chatMessage subscriptions are capped at roughly 60 minutes and must be renewed.

update_a_msteams_subscription_by_id

Renew a Microsoft Graph change-notification subscription by id before it expires. expirationDateTime is the only property Microsoft Graph allows changing on an existing subscription. Returns the updated subscription.

delete_a_msteams_subscription_by_id

Delete a Microsoft Graph change-notification subscription by id so Microsoft Teams stops sending notifications to its notificationUrl. Returns 204 No Content on success.

msteams_subscriptions_reauthorize

Reauthorize a Microsoft Graph change-notification subscription identified by subscription_id, in response to a lifecycle notification with lifecycleEvent 'reauthorizationRequired'. Returns 204 No Content on success. Follow with an update call if the subscription is also close to expiring.

How it works

From Microsoft Teams account to governed MCP endpoint

Connect

Link a Microsoft Teams account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.

Compose

The connection becomes a toolbox instantly. Curate which Microsoft Teams tools are exposed, rename them, or freeze arguments.

Authorize

Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.

Put your agents to work in the tools you already use

Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.