communicationoauth2

Microsoft Teams

Enterprise chat, meetings, channels.

Verdict

The Microsoft Teams MCP lets your team manage channels, chats, meetings, and memberships without leaving Switchy. @mention it to create a new channel for a project, archive an old team, schedule a standup meeting, or pull recent chat messages into a Space for review. It's most useful for team leads who coordinate across multiple Teams workspaces and need to automate repetitive admin tasks. You'll grant OAuth scopes for reading and writing Teams data — the initial consent screen lists about a dozen permissions, so plan a few minutes for your first connection.

Common use cases

  • Spin up project channels from chat
  • Archive completed initiative teams in bulk
  • Schedule recurring standups without calendar
  • Pull chat threads into planning docs
  • Add contractors to team rosters on demand

Integration

Vendor
Microsoft Teams
Category
communication
Auth
OAUTH2
Tools
28
Composio slug
microsoft_teams

Tools

  • Add member to team

    Tool to add a user to a microsoft teams team. use when granting or updating membership for a user.

  • Archive Teams team

    Tool to archive a microsoft teams team. use after confirming the team id; returns 202 if accepted.

  • Create a channel

    Creates a new 'standard', 'private', or 'shared' channel within a specified microsoft teams team.

  • Create Chat

    Creates a new chat; if a 'oneonone' chat with the specified members already exists, its details are returned, while 'group' chats are always newly created.

  • Create online meeting

    Use to schedule a new standalone microsoft teams online meeting, i.e., one not linked to any calendar event.

  • Create Team

    Tool to create a new microsoft teams team. use when you need to provision a team with optional template, channels, and members.

  • Delete Teams team
    destructive

    Tool to delete a microsoft teams team. use after confirming the target team id.

  • Get all chat messages

    Retrieves all messages from a specified microsoft teams chat using the microsoft graph api, automatically handling pagination; ensure `chat id` is valid and odata expressions in `filter` or `select` are correct.

  • Get all chats

    Retrieves all microsoft teams chats a specified user is part of, supporting filtering, property selection, and pagination.

  • Get chat message

    Tool to get a specific chat message. use after confirming chat id and message id.

  • Get Team

    Tool to get a specific team. use when full details of one team by id are needed.

  • Get team channel

    Tool to get a specific channel in a team. use after obtaining valid team and channel ids to fetch channel details.

  • Get Teams message

    Retrieves a specific message from a microsoft teams channel using its team, channel, and message ids.

  • List chat messages

    Retrieves messages (newest first) from an existing and accessible microsoft teams one-on-one chat, group chat, or channel thread, specified by `chat id`.

  • List message replies

    Tool to list replies to a channel message. use after obtaining team, channel, and message ids.

  • List People

    Retrieves a list of people relevant to a specified user from microsoft graph, noting the `search` parameter is only effective if `user id` is 'me'.

  • List team channels

    Retrieves channels for a specified microsoft teams team id (must be valid and for an existing team), with options to include shared channels, filter results, and select properties.

  • List team members

    Tool to list members of a microsoft teams team. use when you need to retrieve the members of a specific team, for auditing or notifications.

  • List Teams

    Retrieves microsoft teams accessible by the authenticated user, allowing filtering, property selection, and pagination.

  • List Teams templates

    Tool to list available microsoft teams templates. use when retrieving templates for team creation or customization workflows.

  • List users

    Tool to list all users in the organization. use when you need to retrieve directory users with filtering, pagination, and field selection.

  • Post message to Teams channel

    Posts a new text or html message to a specified channel in a microsoft teams team.

  • Reply to Teams channel message

    Sends a reply to an existing message, identified by `message id`, within a specific `channel id` of a given `team id` in microsoft teams.

  • Send message to Teams chat

    Sends a non-empty message (text or html) to a specified, existing microsoft teams chat; content must be valid html if `content type` is 'html'.

  • Unarchive Teams team

    Tool to unarchive a microsoft teams team. use when you need to restore an archived team to active state.

  • Update Team

    Tool to update the properties of a team. use when you need to modify team settings such as member, messaging, or fun settings.

  • Update Teams channel message

    Tool to update a message in a channel. use when you need to modify an existing channel message after confirming channel and message ids.

  • Update Teams chat message

    Tool to update a specific message in a chat. use when you need to correct or modify a sent chat message.

Setup

Setup guide

  1. 11. Open your Switchy workspace and navigate to Settings > Integrations > Microsoft Teams. 2. Click 'Connect Microsoft Teams' to start the OAuth flow. 3. Sign in with your Microsoft 365 account and review the requested scopes — you'll grant permissions to read and manage teams, channels, chats, and meetings on your behalf. 4. Click 'Accept' to authorize Switchy; you'll return to the integrations page with a green 'Connected' badge. 5. Open any Space and type '@Microsoft Teams' followed by a request like 'list my teams' to confirm the connection works. 6. If the MCP responds with your team list, you're ready to invoke any of the 28 tools by describing what you need in plain language.

What teammates see: by default, memories from Microsoft Teams are scoped to the Space (PROJECT visibility) - you can mark any memory PRIVATE or share it ORG-wide.

Works well with

Top models

Compatibility data appears once enough Spaces have used this MCP together with a given model.

How Switchy teams use it

Not enough Spaces yet to publish anonymised usage stats (we require ≥ 50 Spaces per week).

Starter prompts

Create Project Channel

@Microsoft Teams create a new standard channel called 'Q2 Product Launch' in the Marketing team. Set the description to 'Campaign planning and asset review for Q2 release.'
Open in a Space →

Archive Old Team

@Microsoft Teams archive the team named '2024 Offsite Planning'. Confirm the team ID first, then proceed with archival.
Open in a Space →

Schedule Standup Meeting

@Microsoft Teams create an online meeting titled 'Engineering Standup' starting tomorrow at 9 AM Pacific, duration 30 minutes. Include the join link in your response.
Open in a Space →

Fetch Recent Chat Messages

@Microsoft Teams get all messages from the chat named 'Design Review' and return the most recent 20. Include sender names and timestamps.
Open in a Space →

Add Member to Team

@Microsoft Teams add user jane.doe@company.com as a member of the 'Customer Success' team. Confirm the addition and return the updated member count.
Open in a Space →

Example outputs

Illustrative - representative of the model's voice and quality, not literal recordings.

Prompt

@Microsoft Teams list all messages in the #product-launch chat from the last 3 days and summarize the key decisions made

Output

Retrieved 47 messages from the #product-launch chat (chat ID: 19:meeting_abc123...). Key decisions identified: (1) Launch date moved to March 15th per Sarah's availability constraints, (2) Beta access limited to 50 users instead of 100 due to support capacity, (3) Pricing tier structure approved at $29/$79/$149 monthly, and (4) Marketing will lead the announcement with Engineering providing technical FAQ support. Most active participants were Sarah Chen (12 messages), Mike Torres (9 messages), and the product team bot (8 automated updates).

Notes

This read-heavy example demonstrates message retrieval with AI synthesis. Requires Chat.Read or Chat.ReadWrite delegated permissions. The MCP handles pagination automatically for large chat histories, but be aware that very active channels (500+ messages) may approach rate limits. Message content reflects the actual text teammates typed, including any sensitive information shared in that chat.

Prompt

@Microsoft Teams create a new private channel called 'Q1-Financial-Review' in the Executive team and add jdoe@company.com and ssmith@company.com as members

Output

Successfully created private channel 'Q1-Financial-Review' in the Executive team (team ID: 02bd9fd6-8f93-4758-87c3-1fb73740a315). Channel ID: 19:private_channel_xyz789. Added 2 members: jdoe@company.com (John Doe) and ssmith@company.com (Sarah Smith) with 'member' role. The channel is now accessible only to these users plus team owners. Note that private channels have separate file storage from the parent team and cannot be converted to standard channels later.

Notes

This write example shows channel creation with membership management. Requires Channel.Create, ChannelMember.ReadWrite.All, and Team.ReadBasic.All permissions. Private channels are permanent architectural decisions—they create isolated SharePoint sites that persist even if the channel is later deleted. Always confirm team ID and member email addresses before execution, as typos create orphaned resources.

Prompt

@Microsoft Teams schedule a meeting called 'Sprint Retrospective' for tomorrow at 2pm EST, 60 minutes, and invite the engineering-team chat participants

Output

Created online meeting 'Sprint Retrospective' scheduled for January 24, 2025, 2:00 PM - 3:00 PM EST. Meeting join URL: https://teams.microsoft.com/l/meetup-join/19%3ameeting_def456... However, I cannot automatically invite chat participants because this creates a standalone meeting (not linked to a calendar event). To invite the engineering-team members, you have two options: (1) Share the join URL in the chat directly, or (2) Create a calendar event through Outlook/Exchange integration instead, which supports attendee lists. The meeting room is active and ready to join.

Notes

This example highlights a common limitation: standalone Teams meetings don't support attendee management via Graph API. Requires OnlineMeetings.ReadWrite permission. The MCP creates the meeting infrastructure but cannot send invitations—you'll need to share the URL manually or use calendar-based meeting creation. Useful for ad-hoc meetings where a join link is sufficient, less suitable for formal scheduled events requiring RSVP tracking.

Use-case deep-dives

Client project kickoff automation

When Teams MCP wins for spinning up client workspaces

A 6-person agency onboards 3-4 new clients per month, each needing a dedicated Teams workspace with channels for design, dev, and client comms. The Teams MCP is the right call here because it automates the Create Team → Create Channel → Add Member sequence that otherwise takes 15 minutes of manual clicking. The OAuth2 scope means one admin connects it once; the whole team benefits. The 28-tool surface is overkill for this scenario—you'll use maybe 4—but the Create Team tool alone justifies the integration. If your agency runs on Slack or Discord instead, skip this MCP entirely; it's Teams-native and doesn't bridge. Buy this if you're already a Microsoft shop and client onboarding is a weekly chore.

Support ticket escalation routing

When this MCP solves cross-team handoff lag

A 12-person support team escalates 20-30 tickets per week to engineering, product, or sales. The bottleneck is creating the right group chat, pulling in the right people, and pasting context from the ticket system. The Teams MCP's Create Chat and Get all chat messages tools let you script this: Switchy reads the ticket, decides the escalation path, spins up a group chat with the right members, and drops the summary. The trade-off is that this only works if your escalation logic is consistent enough to automate—if every ticket needs human judgment on who to loop in, the MCP just adds overhead. The Archive Teams team tool is irrelevant here; ignore the long tail of tools and focus on chat creation. This is a win if you escalate predictably and live in Teams.

Quarterly all-hands meeting prep

When this MCP is overkill for low-frequency events

A 40-person startup runs all-hands every quarter and needs to schedule the meeting, create a temporary discussion channel, and archive it afterward. The Teams MCP can do this—Create online meeting, Create a channel, Archive Teams team—but the ROI is borderline because you're only running this workflow 4 times a year. The OAuth2 setup and tool-selection overhead probably costs more than just doing it manually in the Teams UI. The MCP makes sense if you're also using it for higher-frequency workflows (like the client kickoff scenario above) and this is a bonus use case. If all-hands prep is your only need, don't integrate this MCP; the juice isn't worth the squeeze. Save it for teams running 10+ similar workflows per month.

Frequently asked

What can the Microsoft Teams MCP do in Switchy?

It lets your AI agents create teams and channels, schedule meetings, send chat messages, and manage memberships — all without leaving Switchy. The 28 tools cover the full lifecycle: provisioning new teams from templates, archiving old ones, adding or removing members, and retrieving message history. Think of it as giving your workspace a direct line into Teams administration and messaging, so you can automate onboarding, project kickoffs, or compliance sweeps.

Do I need admin permissions to connect Microsoft Teams?

You need OAuth consent for scopes like Team.Create, Channel.Create, Chat.ReadWrite, and OnlineMeetings.ReadWrite. Most of those require admin consent in your Microsoft 365 tenant. If you're not a Global Admin, ask your IT team to pre-approve the Switchy app registration. Without admin sign-off, the connection will fail or silently skip restricted operations like creating teams or reading all chat messages.

Can the MCP read private channel messages?

Yes, if the OAuth token includes ChannelMessage.Read.All and the user who authenticated has access to that private channel. The 'Get all chat messages' tool handles pagination automatically, so agents can pull entire conversation threads. Keep in mind that Microsoft's API rate limits apply — bulk exports of large channels may take several calls and trigger throttling if you're not careful.

Why use this instead of the Teams web UI or Graph API directly?

The MCP wraps 28 discrete Graph endpoints into natural-language tools your AI can call without writing code. Instead of scripting OAuth flows, pagination logic, and error handling for each operation, you describe what you want — 'archive the Q3 project team', 'add Sarah to the design channel' — and Switchy routes it. It's faster than clicking through the UI and less brittle than maintaining your own Graph client.

Who on my team should connect the Microsoft Teams MCP?

Whoever has Global Admin or Teams Admin rights in your Microsoft 365 tenant. That person's token will be used for all agent actions, so choose someone whose permissions match your automation needs. If you only want agents to send messages and schedule meetings, a user with delegated Chat.ReadWrite and OnlineMeetings.ReadWrite is enough. For team creation or deletion, you need the admin role.

Compare with

Compare with anything else →
Data last verified 7 hours ago.Sources aggregated hourly to weekly. See docs/architecture/model-directory.md.