C

Microsoft Teams MCP

MCP server for Microsoft Graph Teams integration with channels, chats, messages, and user management

Overall Score68/100

Score Breakdown

Server Info

Package
@floriscornel/teams-mcp
Registry
npm
Maintainer
Community
Category
Communication
Tags
teamsmicrosoftmessaging
Last Scanned
7 Apr 2026

Findings

4 issues

Authentication & Identity

HIGHNo per-request auth - requires instance-per-user

Uses MSAL device code flow for OAuth 2.0 authentication with Microsoft Graph. Tokens are cached to ~/.teams-mcp-token-cache.json. Supports a pre-existing AUTH_TOKEN env var. Also supports --read-only CLI flag or TEAMS_MCP_READ_ONLY env var to restrict to read-only scopes. Stdio transport only. For multi-tenant deployment, the platform must spawn a separate server instance per user.

Remediation

Add HTTP/SSE transport to accept per-request Authorization headers, or implement the MCP OAuth spec.

Data Exposure

MEDIUM3 list operations lack pagination

get_chat_messages supports rich pagination with limit, offset (since/until), fetchAll with page following, and max_results cap at 2000. search_messages has from/size pagination. get_channel_messages has $top limit. list_teams, list_channels, and list_chats lack pagination parameters. Responses return selected fields (summaries), not full Graph API records.

Remediation

Add limit/offset or cursor-based pagination.

LOWNo field selection on responses

Responses return full records rather than projected fields.

Remediation

Implement field selection to return only relevant fields.

Maintenance & Trust

LOWCommunity-maintained by Floris Cornel

No official vendor backing.

Remediation

Seek vendor verification.

Tools

30 total
NameDescriptionRisk
auth_statusCheck the authentication status of the Microsoft Graph connection. Returns whether the user is authenticated and shows their basic profile information.read
get_current_userGet the current authenticated user's profile information including display name, email, job title, and department.read
search_usersSearch for users in the organization by name or email address. Returns matching users with their basic profile information.read
get_userGet detailed information about a specific user by their ID or email address. Returns profile information including name, email, job title, and department.read
list_teamsList all Microsoft Teams that the current user is a member of. Returns team names, descriptions, and IDs.read
list_channelsList all channels in a specific Microsoft Team. Returns channel names, descriptions, types, and IDs for the specified team.read
get_channel_messagesRetrieve recent messages from a specific channel in a Microsoft Team. Returns message content, sender information, and timestamps.read
send_channel_messageSend a message to a specific channel in a Microsoft Team. Supports text and markdown formatting, mentions, and importance levels.write
get_channel_message_repliesGet all replies to a specific message in a channel. Returns reply content, sender information, and timestamps.read
reply_to_channel_messageReply to a specific message in a channel. Supports text and markdown formatting, mentions, and importance levels.write
list_team_membersList all members of a specific Microsoft Team. Returns member names, email addresses, roles, and IDs.read
search_users_for_mentionsSearch for users to mention in messages. Returns users with their display names, email addresses, and mention IDs.read
download_message_hosted_contentDownload hosted content (such as images) from a Teams channel message. Returns the content as base64 encoded data along with metadata.read
delete_channel_messageSoft delete a message in a channel. Only the message sender can delete their own messages. The message will be marked as deleted.write
update_channel_messageUpdate (edit) a message in a channel that was previously sent. Only the message sender can update their own messages.write
set_channel_message_reactionAdd a reaction to a message in a Teams channel. Supports Unicode emoji characters and named reactions (like, angry, sad, laugh, heart, surprised). Can also react to replies.write
unset_channel_message_reactionRemove a reaction from a message in a Teams channel. Can also remove reactions from replies.write
send_file_to_channelUpload a local file and send it as a message to a Teams channel. Supports any file type (PDF, DOCX, ZIP, images, etc.).write
list_chatsList all recent chats (1:1 conversations and group chats) that the current user participates in. Returns chat topics, types, and participant information.read
get_chat_messagesRetrieve recent messages from a specific chat conversation. Returns message content, sender information, and timestamps.read
download_chat_hosted_contentDownload hosted content (such as images) from a chat message. Returns the content as base64 encoded data along with metadata.read
send_chat_messageSend a message to a specific chat conversation. Supports text and markdown formatting, mentions, and importance levels.write
create_chatCreate a new chat conversation. Can be a 1:1 chat (with one other user) or a group chat (with multiple users). Group chats can optionally have a topic.write
update_chat_messageUpdate (edit) a chat message that was previously sent. Only the message sender can update their own messages.write
delete_chat_messageSoft delete a chat message that was previously sent. Only the message sender can delete their own messages.write
set_chat_message_reactionAdd a reaction to a message in a chat conversation. Supports Unicode emoji characters and named reactions (like, angry, sad, laugh, heart, surprised).write
unset_chat_message_reactionRemove a reaction from a message in a chat conversation.write
send_file_to_chatUpload a local file and send it as a message to a Teams chat. Supports any file type (PDF, DOCX, ZIP, images, etc.).write
search_messagesSearch for messages across all Microsoft Teams channels and chats using the Microsoft Search API. The query string supports KQL (Keyword Query Language) syntax for advanced filtering.read
get_my_mentionsFind recent messages where the current user was @mentioned across all Teams channels and chats.read

Deploy Microsoft Teams MCP securely

CompleteFlow adds per-user authentication, permission scoping, and audit logging to any MCP server out of the box.

Deploy on CompleteFlow