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.
Important
You need to be part of the Frontier preview program to get early access to Microsoft Agent 365. Frontier connects you directly with Microsoft’s latest AI innovations. Frontier previews are subject to the existing preview terms of your customer agreements. As these features are still in development, their availability and capabilities may change over time.
Overview
| 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. |
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 409 if the member is already present, 400 for invalid user references, or 403 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 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 403 if permission is missing, 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 403 without Chat.ReadWrite, 404 for invalid IDs, and may 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, returning metadata like type and topic. Returns 404 if the chat doesn't exist or isn't visible, or 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 404 if the message doesn't exist or is hidden, or 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/guest). Returns 403 without read permissions or 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 may hide content. Errors include 400 for bad queries and 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 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 non-empty body.content; only text supported. May return 429 for throttling, 403 if permissions are missing, or 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. Editing might be blocked for some system or compliance messages. Returns 403 or 400 if editing is disallowed, or 409 on 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 with user@odata.bind, @odata.type, and optional roles (owner or empty). Fails on standard channels, returns 409 if the member is already present, and 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 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 with membershipType: private. Requires members at creation, including at least one owner. Returns 400 if missing members, 409 for duplicate names, or 403 without 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 404 if channel not found or caller lacks access, 403 if permissions insufficient, or 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 403 or 404 if 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, returning metadata about each member such as identity, roles, and membership status. 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 with optional $top and $expand (for example, replies). Pagination is handled through @odata.nextLink. Returns 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 with optional $select or $filter. Returns private and shared channels only if the caller is a member. Fails with 403 if the caller lacks read rights or 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 403 if the caller can't query the user or 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 403 without ChannelMessage.Send, 404 if channel not found, or 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 with body.content. Only plain text is supported. Returns 404 if the parent message isn't found, 403 without rights, or 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 new displayName or description. Restrictions might apply to special channels like General. Returns 403 without rights, 409 on duplicate names, or 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 400 if attempted on standard channels, 403 if unauthorized, or 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 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