Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
| Server ID | Display name | Scope | Description |
|---|---|---|---|
mcp_TeamsServer |
Microsoft Teams MCP Server | McpServers.Teams.All |
Microsoft Teams Graph MCP Server to manage chats, channels, and users or messages within them. Use this MCP Server for Teams operations like creating, updating, and retrieving chats and chat messages, managing teams and channels, and performing administrative tasks related to these tasks. |
Chat tools
mcp_graph_chat_addChatMember
Endpoint: POST /v1.0/chats/{chat-id}/members
Adds a member to a chat by using user@odata.bind, @odata.type, and optional roles (member, owner). Returns a 409 error code if the member is already present, a 400 error code for invalid user references, or a 403 error code if policies restrict adding.
Required parameters: chat-id, @odata.type, user@odata.bind, roles
mcp_graph_chat_createChat
Endpoint: POST /v1.0/chats
Creates a new Teams chat with chatType (oneOnOne requires exactly two participants, group requires more than two) and members. Returns a 400 if oneOnOne has the wrong member count, 409 if the same participants already have a chat, or 403 if the caller lacks rights.
Required parameters: chatType, members
mcp_graph_chat_deleteChat
Endpoint: DELETE /v1.0/chats/{chat-id}
Soft-deletes a chat. Returns a 403 if permission is missing or a 404 if already deleted, and is subject to tenant retention policies.
Required parameters: chat-id
mcp_graph_chat_deleteChatMessage
Endpoint: POST /v1.0/users/{user-id}/chats/{chat-id}/messages/{chatMessage-id}/softDelete
Soft-deletes a chat message. Returns a 403 without Chat.ReadWrite, a 404 for invalid IDs, and might still retain the message for compliance.
Required parameters: user-id, chat-id, chatMessage-id
mcp_graph_chat_getChat
Endpoint: GET /v1.0/chats/{chat-id}
Retrieves a chat by ID. Returns metadata like type and topic. Returns a 404 if the chat doesn't exist or isn't visible, or a 403 if permissions are denied.
Required parameters: chat-id
mcp_graph_chat_getChatMessage
Endpoint: GET /v1.0/chats/{chat-id}/messages/{message-id}
Retrieves a chat message by ID. Returns a 404 if the message doesn't exist or is hidden, or a 403 without proper rights.
Required parameters: chat-id, message-id
mcp_graph_chat_listChatMembers
Endpoint: GET /v1.0/chats/{chat-id}/members
Lists chat participants. Returns roles (member, owner, or guest). Returns a 403 without read permissions or a 404 if chat not found.
Required parameters: chat-id
mcp_graph_chat_listChatMessages
Endpoint: GET /v1.0/chats/{chat-id}/messages
Lists messages in a chat with optional $top, $filter, and $orderby. Returns paged results. Compliance might hide content. Errors include a 400 for bad queries and a 429 for throttling.
Required parameters: chat-id
Optional Parameters: $top, $filter, $orderby
mcp_graph_chat_listChats
Endpoint: GET /v1.0/chats
Lists chats for the caller with optional $top, $filter, $expand, and $orderby. Returns only visible chats; hidden or system chats might be excluded. Returns a 400 for invalid sort expressions.
Optional Parameters: $top, $orderby, $expand, $filter
mcp_graph_chat_postMessage
Endpoint: POST /v1.0/chats/{chat-id}/messages
Posts a new plain-text message in a chat. Needs chat-id and nonempty body.content; only text supported. Might return a 429 for throttling, a 403 if permissions are missing, or a 404 if chat is invalid. Not idempotent—avoid blind retries.
Required parameters: chat-id, body
mcp_graph_chat_updateChat
Endpoint: PATCH /v1.0/chats/{chat-id}
Updates chat properties, such as the topic for group chats only. Fails with 400 if used on a one-on-one chat, 403 without rights, or 404 if chat not found.
Required parameters: chat-id, topic
mcp_graph_chat_updateChatMessage
Endpoint: PATCH /v1.0/chats/{chat-id}/messages/{message-id}
Updates a chat message with new plain-text content. Some system or compliance messages block editing. The operation returns a 403 or 400 if editing is disallowed, or a 409 for conflicts.
Required parameters: chat-id, message-id
Channel and Team tools
mcp_graph_teams_addChannelMember
Endpoint: POST /v1.0/teams/{team-id}/channels/{channel-id}/members
Adds a member to a private or shared channel by using user@odata.bind, @odata.type, and optional roles (owner or empty). Fails on standard channels. Returns a 409 if the member is already present, and a 403 if lacking permissions.
Required parameters: team-id, channel-id, displayName, roles, user@odata.bind, @odata.type
mcp_graph_teams_createChannel
Endpoint: POST /v1.0/teams/{team-id}/channels
Creates a channel in a team with displayName, optional description, membershipType (standard, private, shared), and optional members. Private or shared channels require explicit members. Duplicates or invalid membership cause a 400 or 409.
Required parameters: team-id, displayName
Optional Parameters: description, membershipType, members
mcp_graph_teams_createPrivateChannel
Endpoint: POST /v1.0/teams/{team-id}/channels
Creates a private channel by setting membershipType to private. You must include members when you create the channel, and the members list must have at least one owner. Returns a 400 if the members are missing, a 409 for duplicate names, or a 403 if the caller doesn't have permissions.
Required parameters: team-id, displayName, members
mcp_graph_teams_getChannel
Endpoint: GET /v1.0/teams/{team-id}/channels/{channel-id}
Retrieves a channel with optional $select and $filter. Returns a 404 if the channel isn't found or the caller lacks access, a 403 if permissions are insufficient, or a 400 for unsupported filters.
Required parameters: team-id, channel-id
Optional Parameters: $select, $filter
mcp_graph_teams_getTeam
Endpoint: GET /v1.0/teams/{team-id}
Retrieves team properties with optional $select and $expand. Returns a 403 or 404 if the team is inaccessible.
Required parameters: team-id
Optional Parameters: $select, $expand
mcp_graph_teams_listChannelMembers
Endpoint: GET /v1.0/teams/{team-id}/channels/{channel-id}/members
Lists all members of a specific Microsoft Teams channel. Returns metadata about each member, such as identity, roles, and membership status. This information is useful for auditing channel participation, verifying membership before role updates, or ensuring compliance.
Required parameters: team-id, channel-id
Optional Parameters: $top, $expand
mcp_graph_teams_listChannelMessages
Endpoint: GET /v1.0/teams/{team-id}/channels/{channel-id}/messages
Lists messages in a channel. Use the optional $top and $expand parameters to customize the results. For example, use $expand to include replies. Pagination is handled through @odata.nextLink. Returns a 403 without read permission or 400 for invalid query options.
Required parameters: team-id, channel-id
Optional Parameters: $top, $expand
mcp_graph_teams_listChannels
Endpoint: GET /v1.0/teams/{team-id}/allChannels
Lists channels in a team. Use the optional $select or $filter parameters to customize the results. Returns private and shared channels only if the caller is a member. Fails with a 403 if the caller lacks read rights or a 400 on invalid OData queries.
Required parameters: team-id
Optional Parameters: $select, $filter
mcp_graph_teams_listTeams
Endpoint: GET /v1.0/users/{user-id}/joinedTeams
Lists the joined teams of a specific user. Returns only memberships of that user, not all tenant teams. Returns a 403 if the caller can't query the user or a 404 if the ID is invalid.
Required parameters: user-id
mcp_graph_teams_postChannelMessage
Endpoint: POST /v1.0/teams/{team-id}/channels/{channel-id}/messages
Posts a plain-text message to a channel. Requires team-id, channel-id, and body.content. Returns a 403 without ChannelMessage.Send, a 404 if channel not found, or a 400 if content is missing.
Required parameters: team-id, channel-id, body
mcp_graph_teams_replyToChannelMessage
Endpoint: POST /v1.0/teams/{team-id}/channels/{channel-id}/messages/{message-id}/replies
Replies to a message in a channel by using body.content. Only plain text is supported. Returns a 404 if the parent message isn't found, a 403 without rights, or a 400 for invalid content.
Required parameters: team-id, channel-id, message-id, body
mcp_graph_teams_updateChannel
Endpoint: PATCH /teams/{team-id}/channels/{channel-id}
Updates a channel with a new displayName or description. Restrictions might apply to special channels like General. Returns a 403 without rights, a 409 on duplicate names, or a 400 for invalid input.
Required parameters: team-id, channel-id
Optional Parameters: displayName, description
mcp_graph_teams_updateChannelMember
Endpoint: PATCH /teams/{team-id}/channels/{channel-id}/members/{membership-id}
Updates a member's role in a private or shared channel by changing roles. Standard channels inherit roles from the team and usually reject updates. Returns a 400 if attempted on standard channels, a 403 if unauthorized, or a 404 if member not found.
Required parameters: team-id, channel-id, membership-id, roles
Supported operations
- Chat management (create, read, update, delete)
- Message operations (send, retrieve, edit, delete)
- Channel management (create, configure, list)
- Member management (add, update, list)
- Team operations (retrieve, list)
Key features
- Full create, read, update, and delete (CRUD) operations for chats and channels
- Support for private, shared, and standard channels
- Message threading and replies
- Member role management
- OData query support for filtering and pagination