Microsoft Teams MCP logo

Microsoft Teams MCP

Reads and manages Microsoft Teams chats, channels, activity, messages, attachments, and reactions through a signed-in browser session.

Install Microsoft Teams MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "microsoft-teams-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/microsoft-teams-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Automated check passed— started and listed 13 tools correctly (10d ago).

Overview

The microsoft-teams-mcp MCP server connects AI clients to Microsoft Teams through the Teams chat-service API and a signed-in browser session. It lists chats and channels, reads messages and unread items, searches conversations, retrieves attachments, and exposes the Activity feed. Confirmed write operations can send messages, add or remove reactions, and mark conversations read. Reach for it when an agent needs access to Teams data without keeping each conversation open in the browser.

Use cases

  • Read unread Teams messages across chats and channels
  • Search Teams conversations for specific text
  • Export chat or channel history to files
  • Send confirmed messages and reactions in Teams
  • Retrieve shared files and inline images from messages

Key features

  • List chats, meeting chats, teams, and channels
  • Read messages by conversation ID or name
  • Search messages with Substrate or scan fallback
  • Fetch inline images and SharePoint attachments
  • Send messages, manage reactions, and mark conversations read
  • Export conversations and run token health checks

Tools13

What Microsoft Teams MCP lets your agent do. Expand a tool for its parameters.

Verified live~13.4k tokens of context

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

8/8 checks healthy over the last 31d

What it can do

From the 13 tools this server returned when we ran it; 13 declare their own safety hints.

Runs commands · 1Can delete or modify data · 2Handles credentials · 9Makes network requests · 13Read-only tools · 10
Network at startup3 connections
Files written at startupNone
Install scriptsNone
npm provenanceSigned build
Package age41 days
Maintainers1

Observed 2026-11-02 in an isolated sandbox. A description of reach, not a security audit.

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 8d ago via OSV.dev · @chrischall/microsoft-teams-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

npm downloads2.6kPackage downloads in the last 30 days.
Last commit2d agoMost recent push to the default branch.
Availability100%Our rolling endpoint + install checks that succeeded.
Install checkPassedOur sandbox started it and listed its tools.
Tools exposed13Callable tools this server registers over MCP.

How Microsoft Teams MCP works

What microsoft-teams-mcp does

The microsoft-teams-mcp MCP server gives an MCP client access to Microsoft Teams chats, group conversations, meeting chats, teams, channels, messages, activity notifications, and attachments. It can enumerate conversations and channels, read messages by name or ID, find unread messages, identify conversations that changed recently, and export chats or channels to files.

Read operations do not change Teams read indicators by default. The server also supports confirmed actions for sending a message, adding or removing a reaction, and advancing the read marker for a chat or channel.

The server works with the current teams.cloud.microsoft host. The older teams.microsoft.com host is not supported.

How it works

Teams data is requested from Microsoft’s chat-service REST API. Because the required bearer token is available in the signed-in Teams web session, the server uses the ContextMint Bridge browser extension and @fetchproxy/cli to capture the authorization header from a request made by the Teams tab. After capture, requests run from the server and do not require the relevant chat or channel to remain open.

The chat-service token is cached for its approximate 23-hour lifetime. If a request receives a 401 response, the server attempts one recapture and retry. The Activity feed is treated as a Teams conversation, so its view does not need to be open.

Attachment downloads use a separate SharePoint token because shared files are stored outside the chat-service object store. Message search uses a separate Microsoft Substrate token captured from a Teams search request. Search can fall back to scanning recent conversations when Substrate capture or querying is unavailable.

Setup and configuration

Install the package globally with npm i -g @chrischall/microsoft-teams-mcp, then install a matching major version of @fetchproxy/cli and the ContextMint Bridge extension. Chrome is currently required; Safari support is not available. On the first call, approve the six-digit pairing code shown by the server in the Bridge popup.

The server can also run with a direct TEAMS_ACCESS_TOKEN. Setting TEAMS_DISABLE_FETCHPROXY=true disables browser capture and makes that token necessary. Optional settings control the chat-service region and base URL, capture timeout, token caching, and cache-file locations. Search may require a one-time re-pair after adding its Substrate trust scope, and file downloads may require a one-time SharePoint re-pair.

An opencode configuration can register the package as a local MCP process:

config.json
{
  "mcp": {
    "servers": {
      "teams": {
        "type": "local",
        "command": ["npx", "-y", "@chrischall/microsoft-teams-mcp"]
      }
    }
  }
}

Tools and capabilities

The microsoft-teams-mcp MCP server exposes tools for:

  • Listing all conversations and channels available to the signed-in account.
  • Reading chat or channel messages by ID or name.
  • Listing unread messages and conversations with new messages.
  • Searching message text through Substrate or a recent-conversation scan.
  • Reading the Teams Activity feed.
  • Fetching an individual attachment, including inline images and SharePoint files.
  • Exporting chat and channel messages to files.
  • Checking token resolution with a health check.
  • Sending messages, adding or removing reactions, and marking conversations read.

Write actions and explicit read-marker changes require confirmation before they modify Teams data.

Limitations and notes

Browser pairing is part of the default authentication flow, and the Teams tab must issue a relevant request before a token can be captured. Search may need a search performed in Teams while capture is waiting. SharePoint tokens are short-lived and scoped to a host family, so the first file from a host may require opening that file once in a signed-in Teams tab.

A file that the account cannot access, or that belongs to an unsupported SharePoint host, may return metadata and an open link instead of file contents. The project documentation states that it is maintained by AI and should be used at the operator’s discretion.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Microsoft Teams MCP

microsoft-teams-mcp is an MCP server that connects AI clients to Microsoft Teams through a signed-in browser session and Teams APIs. Its main tools list chats and channels, read messages and activity, search conversations, fetch attachments, export messages, send messages, manage reactions, and mark chats or channels read.

Install it with `npm i -g @chrischall/microsoft-teams-mcp`, then install `@fetchproxy/cli` and the ContextMint Bridge extension in Chrome. Start the server through your MCP client and approve the six-digit pairing code shown in the Bridge popup on the first call.

Yes, microsoft-teams-mcp uses the standard MCP interface and can be configured in MCP clients that support local stdio servers, including Cursor. The provided setup example documents opencode specifically; the browser bridge and Chrome authentication requirements still apply.

Yes, `teams_search_messages` searches through Microsoft Substrate when its token is available. In automatic mode it falls back to scanning recent conversations if capture or the Substrate request fails; scan mode avoids Substrate, while substrate mode fails instead of falling back.

No, reading messages leaves Teams unread markers unchanged by default. The `teams_mark_read` tool and the `mark_read: true` option on message-listing tools explicitly advance the read marker, and those changes require confirmation.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMicrosoft Teams MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/microsoft-teams-mcp?style=directory)](https://allmcps.com/mcp/microsoft-teams-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/microsoft-teams-mcp"><img src="https://allmcps.com/api/badge/microsoft-teams-mcp?style=directory" alt="Microsoft Teams MCP on AllMCPs" /></a>