Microsoft Teams
Enterprise chat, meetings, channels.
Verdict
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 teamdestructive
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
- 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
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.
@Microsoft Teams list all messages in the #product-launch chat from the last 3 days and summarize the key decisions made
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).
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.
@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
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.
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.
@Microsoft Teams schedule a meeting called 'Sprint Retrospective' for tomorrow at 2pm EST, 60 minutes, and invite the engineering-team chat participants
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.
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
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.
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.
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.