Teams MCP Server
Microsoft Graph API integration for Teams chat, message, and user management.
Data last scanned today · Reviewed today
Overview
Teams MCP Server provides a bridge between AI assistants and the Microsoft Graph API, allowing users to query and manage their organizational data. It facilitates interaction with Microsoft Teams by surfacing joined teams, channel structures, and member directories directly within the assistant's context. The server features comprehensive messaging capabilities, including sending, editing, and soft-deleting messages in both 1:1 chats and team channels. It also manages authentication through an OAuth 2.0 device flow with support for token persistence and optional read-only configurations.
Our verdict
With a security score of 70/100, this server is classified as medium risk. While it includes valuable features like OAuth 2.0 authentication and a read-only configuration option to limit accidental modifications, users should exercise caution because it is a community-maintained project rather than an official Microsoft release and has not undergone independent editorial review. It is recommended for developers comfortable with self-managed third-party integrations.
- Supports secure OAuth 2.0 device code authentication flow.
- Includes a read-only mode to restrict modification scopes.
- Maintained by nine contributors reducing bus-factor risks.
- Small footprint with only 14 direct dependencies.
- Community-maintained rather than supported by the official vendor.
- Has not yet undergone independent editorial review.
- Lacks a dedicated homepage link for official documentation.
Setup
{
"mcpServers": {
"teams-mcp": {
"args": [
"-y",
"@floriscornel/teams-mcp"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
Tools
| Tool | Description | Risk |
|---|---|---|
| auth_status | Check current authentication status | low |
| get_current_user | Get authenticated user information | low |
| search_users | Search for users by name or email | low |
| get_user | Get detailed user information by ID or email | low |
| list_teams | List user's joined teams | low |
| list_channels | List channels in a specific team | low |
| get_channel_messages | Retrieve messages from a team channel with attachment summaries and content format selection | low |
| get_channel_message_replies | Get replies to a specific channel message | low |
| send_channel_message | Send a message to a team channel with optional mentions, importance, and image attachments | medium |
| reply_to_channel_message | Reply to an existing channel message | medium |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›Does the server require a manual API token?
The server supports an OAuth 2.0 device code authentication flow, but it also allows the use of a pre-issued Microsoft Graph access token via an AUTH_TOKEN configuration.
›Can the server run with limited permissions?
Yes, the server supports a read-only mode that operates with reduced Microsoft Graph scopes.
›How does the server handle Markdown in messages?
When the format parameter is set to markdown, the server converts the content to HTML and sanitizes it using a secure parser to prevent XSS attacks before sending it to Teams.
›Are there constraints on modifying messages?
Updates and deletions can only be performed by the original message sender, and deletions are performed as soft deletes which mark the message as deleted rather than permanently removing it.
›Where are files stored when uploaded via the server?
Files uploaded to channels are stored in SharePoint, while files uploaded to chats are stored in the user's OneDrive.
›How are large files handled?
The server supports files larger than 4 MB by utilizing resumable upload sessions.
Badge
Maintain this server? Add the live badge to your README.