
Microsoft Teams
Connects Claude directly to Microsoft Teams via the Graph API, exposing 11 tools for reading and sending messages, listing teams and channels, searching chat history, and managing both channel threads and direct messages. Built for multi-tenant use with OAuth, so any M365 user can sign in with their work account and immediately get their own Teams data without Azure setup. Runs as stdio for Claude Desktop/Code with local token caching, or as HTTP with SSE for remote deployments. If you're building workflows that need Claude to monitor team channels, respond in threads, or search across your organization's Teams conversations, this is the bridge.
- GitHub stars
- 1
- tools
- 30
- transport
- STDIO
- last updated
- Apr 12, 2026
Tools
30 toolsPublic tool metadata for what this MCP can expose to an agent.
MICROSOFT_TEAMS_ADD_MEMBER_TO_TEAMTool to add a user to a Microsoft Teams team. Use when granting or updating membership for a user.3 params
Tool to add a user to a Microsoft Teams team. Use when granting or updating membership for a user.
rolesarrayteam_idstringuser_idstringMICROSOFT_TEAMS_ARCHIVE_TEAMTool to archive a Microsoft Teams team. Use after confirming the team ID; returns 202 if accepted.2 params
Tool to archive a Microsoft Teams team. Use after confirming the team ID; returns 202 if accepted.
should_set_spo_site_read_only_for_membersbooleanteam_idstringMICROSOFT_TEAMS_CHATS_GET_ALL_CHATSRetrieves all Microsoft Teams chats a specified user is part of, supporting filtering, property selection, and pagination.4 params
Retrieves all Microsoft Teams chats a specified user is part of, supporting filtering, property selection, and pagination.
filterstringselectarraytopintegeruser_idstringMICROSOFT_TEAMS_CHATS_GET_ALL_MESSAGESRetrieves 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.3 params
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.
chat_idstringfilterstringtopintegerMICROSOFT_TEAMS_CREATE_MEETINGUse to schedule a new standalone Microsoft Teams online meeting, i.e., one not linked to any calendar event.5 params
Use to schedule a new standalone Microsoft Teams online meeting, i.e., one not linked to any calendar event.
end_date_timestringis_passcode_requiredbooleanparticipantsarraystart_date_timestringsubjectstringMICROSOFT_TEAMS_CREATE_TEAMTool to create a new Microsoft Teams team. Use when you need to provision a team with optional template, channels, and members.6 params
Tool to create a new Microsoft Teams team. Use when you need to provision a team with optional template, channels, and members.
descriptionstringdisplayNamestringfirstChannelNamestringmembersarraytemplate_odata_bindstringvisibilitystringprivate · publicdefault: publicMICROSOFT_TEAMS_DELETE_TEAMTool to delete a Microsoft Teams team. Use after confirming the target team ID.1 params
Tool to delete a Microsoft Teams team. Use after confirming the target team ID.
team_idstringMICROSOFT_TEAMS_GET_CHANNELTool to get a specific channel in a team. Use after obtaining valid team and channel IDs to fetch channel details.2 params
Tool to get a specific channel in a team. Use after obtaining valid team and channel IDs to fetch channel details.
channel_idstringteam_idstringMICROSOFT_TEAMS_GET_CHAT_MESSAGETool to get a specific chat message. Use after confirming chat_id and message_id.2 params
Tool to get a specific chat message. Use after confirming chat_id and message_id.
chat_idstringmessage_idstringMICROSOFT_TEAMS_GET_TEAMTool to get a specific team. Use when full details of one team by ID are needed.1 params
Tool to get a specific team. Use when full details of one team by ID are needed.
team_idstringMICROSOFT_TEAMS_LIST_MESSAGE_REPLIESTool to list replies to a channel message. Use after obtaining team, channel, and message IDs.4 params
Tool to list replies to a channel message. Use after obtaining team, channel, and message IDs.
channel_idstringmessage_idstringteam_idstringtopintegerMICROSOFT_TEAMS_LIST_TEAM_MEMBERSTool to list members of a Microsoft Teams team. Use when you need to retrieve the members of a specific team, for auditing or notifications.2 params
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.
team_idstringtopintegerMICROSOFT_TEAMS_LIST_TEAMS_TEMPLATESTool to list available Microsoft Teams templates. Use when retrieving templates for team creation or customization workflows.6 params
Tool to list available Microsoft Teams templates. Use when retrieving templates for team creation or customization workflows.
countbooleanfilterstringorderbystringselectstringskipintegertopintegerMICROSOFT_TEAMS_LIST_USERSTool to list all users in the organization. Use when you need to retrieve directory users with filtering, pagination, and field selection.7 params
Tool to list all users in the organization. Use when you need to retrieve directory users with filtering, pagination, and field selection.
$expandstring$filterstring$orderbystring$selectstring$skipinteger$topintegerconsistencyLevelstringMICROSOFT_TEAMS_SEARCH_FILESSearch files in Microsoft Teams using KQL syntax. Find files by name, type, content, author, and modification date across all Teams and channels. Supports boolean logic and date ranges. Examples: 'filetype:pdf AND lastmodifiedtime>=2024-10-01', 'contract AND budget', 'filename...4 params
Search files in Microsoft Teams using KQL syntax. Find files by name, type, content, author, and modification date across all Teams and channels. Supports boolean logic and date ranges. Examples: 'filetype:pdf AND lastmodifiedtime>=2024-10-01', 'contract AND budget', 'filename...
enable_top_resultsbooleanfrom_indexintegerquerystringsizeintegerMICROSOFT_TEAMS_SEARCH_MESSAGESSearch Microsoft Teams messages using powerful KQL syntax. Supports sender (from:), date filters (sent:), attachments, and boolean logic. Works across all Teams chats and channels the user has access to. Examples: 'from:user@example.com AND sent>=2024-10-01', 'punchlist OR ter...4 params
Search Microsoft Teams messages using powerful KQL syntax. Supports sender (from:), date filters (sent:), attachments, and boolean logic. Works across all Teams chats and channels the user has access to. Examples: 'from:user@example.com AND sent>=2024-10-01', 'punchlist OR ter...
enable_top_resultsbooleanfrom_indexintegerquerystringsizeintegerMICROSOFT_TEAMS_TEAMS_CREATE_CHANNELCreates a new 'standard', 'private', or 'shared' channel within a specified Microsoft Teams team.4 params
Creates a new 'standard', 'private', or 'shared' channel within a specified Microsoft Teams team.
descriptionstringmembership_typestringnamestringteam_idstringMICROSOFT_TEAMS_TEAMS_CREATE_CHATCreates a new chat; if a 'oneOnOne' chat with the specified members already exists, its details are returned, while 'group' chats are always newly created.3 params
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.
chatTypestringmembersarraytopicstringMICROSOFT_TEAMS_TEAMS_GET_MESSAGERetrieves a specific message from a Microsoft Teams channel using its Team, Channel, and Message IDs.3 params
Retrieves a specific message from a Microsoft Teams channel using its Team, Channel, and Message IDs.
channel_idstringmessage_idstringteam_idstringMICROSOFT_TEAMS_TEAMS_LISTRetrieves Microsoft Teams accessible by the authenticated user, allowing filtering, property selection, and pagination.3 params
Retrieves Microsoft Teams accessible by the authenticated user, allowing filtering, property selection, and pagination.
filterstringselectstringtopintegerMICROSOFT_TEAMS_TEAMS_LIST_CHANNELSRetrieves 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.4 params
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.
filterstringinclude_shared_channelsbooleanselectstringteam_idstringMICROSOFT_TEAMS_TEAMS_LIST_CHAT_MESSAGESRetrieves messages (newest first) from an existing and accessible Microsoft Teams one-on-one chat, group chat, or channel thread, specified by `chat_id`.2 params
Retrieves messages (newest first) from an existing and accessible Microsoft Teams one-on-one chat, group chat, or channel thread, specified by `chat_id`.
chat_idstringtopintegerMICROSOFT_TEAMS_TEAMS_LIST_PEOPLERetrieves a list of people relevant to a specified user from Microsoft Graph, noting the `search` parameter is only effective if `user_id` is 'me'.7 params
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'.
filterstringorderbystringsearchstringselectstringskipintegertopintegeruser_idstringMICROSOFT_TEAMS_TEAMS_POST_CHANNEL_MESSAGEPosts a new text or HTML message to a specified channel in a Microsoft Teams team.4 params
Posts a new text or HTML message to a specified channel in a Microsoft Teams team.
channel_idstringcontentstringcontent_typestringteam_idstringMICROSOFT_TEAMS_TEAMS_POST_CHAT_MESSAGESends a non-empty message (text or HTML) to a specified, existing Microsoft Teams chat; content must be valid HTML if `content_type` is 'html'.3 params
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'.
chat_idstringcontentstringcontent_typestringMICROSOFT_TEAMS_TEAMS_POST_MESSAGE_REPLYSends a reply to an existing message, identified by `message_id`, within a specific `channel_id` of a given `team_id` in Microsoft Teams.5 params
Sends a reply to an existing message, identified by `message_id`, within a specific `channel_id` of a given `team_id` in Microsoft Teams.
channel_idstringcontentstringcontent_typestringmessage_idstringteam_idstringMICROSOFT_TEAMS_UNARCHIVE_TEAMTool to unarchive a Microsoft Teams team. Use when you need to restore an archived team to active state.1 params
Tool to unarchive a Microsoft Teams team. Use when you need to restore an archived team to active state.
team_idstringMICROSOFT_TEAMS_UPDATE_CHANNEL_MESSAGETool to update a message in a channel. Use when you need to modify an existing channel message after confirming channel and message IDs.5 params
Tool to update a message in a channel. Use when you need to modify an existing channel message after confirming channel and message IDs.
channel_idstringcontentstringcontent_typestringmessage_idstringteam_idstringMICROSOFT_TEAMS_UPDATE_CHAT_MESSAGETool to update a specific message in a chat. Use when you need to correct or modify a sent chat message.4 params
Tool to update a specific message in a chat. Use when you need to correct or modify a sent chat message.
chat_idstringcontentstringcontent_typestringmessage_idstringMICROSOFT_TEAMS_UPDATE_TEAMTool to update the properties of a team. Use when you need to modify team settings such as member, messaging, or fun settings.4 params
Tool to update the properties of a team. Use when you need to modify team settings such as member, messaging, or fun settings.
funSettingsobjectmemberSettingsobjectmessagingSettingsobjectteam_idstringSponsors
Readme
Teams MCP Server
Let Claude read and send your Microsoft Teams messages. An open-source MCP server that connects Claude Code, Claude Desktop and Claude Cowork to Microsoft Teams: list your teams and channels, read channel and chat messages, search across Teams, and post or reply — all by asking Claude in plain English.
- What it does: gives Claude 11 Teams tools through Microsoft Graph, using your own Microsoft 365 sign-in. Claude sees only what you can already see in Teams. Messages pass through; nothing is stored except your sign-in token on your machine.
- Who it's for: people who live in Teams and use Claude — developers, team leads, support and ops people who want "summarise #standup since Monday" or "reply to Priya's question in #release" without switching windows. Also teams that want to host one shared Teams connector for everyone in their company.
- Cost: free and MIT-licensed. You need a Microsoft 365 work or school account and permission to register an app in Azure (or an admin who does it for you once).
Details
- Repository
- github.com/surgeenterpriseai/teams-mcp-server
- Website
- github.com/SurgeEnterpriseAI/teams-mcp-server
- Categories
- Communication & Messaging, Search & Web Crawling
- Package
microsoft-teams-mcp-server- Transport
- STDIO
- Registry
- MCP registry, active