Microsoft Teams MCP server
Microsoft Teams for Claude — read any chat or channel and its unread messages; send and react
0 stars291 downloads/wk
Reviews
Write oneNobody has reviewed Microsoft Teams yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Microsoft Teams tools (13, 1 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
teams_export_messagesBulk-export the messages of chats and channels to files — for archiving, or to search or analyse
teams_get_attachmentFetch one attachment of a Teams chat or channel message, as listed by
teams_healthcheck… The credential is the Teams chat-service
teams_list_activityRead the Teams Activity feed (the bell icon) — mentions, reactions, replies, meeting
teams_list_changed_conversationsList the chats and channels that got new messages since a cursor, most recent first — counts, not
teams_list_channelsList every channel the signed-in user is in, across all their teams, sorted by team
teams_list_conversationsList every chat the signed-in user is in — 1:1s, group chats and meeting chats, not
teams_list_messagesRead the messages of any chat or channel the signed-in user is in, by id (from
teams_list_unread_messagesGet every unread message across all the chats and channels the signed-in user is in
teams_mark_readMark a chat or channel read in Teams, clearing its unread badge: moves the signed-in user's read
teams_reactAdd (or, with remove: true, withdraw) the signed-in user's reaction on a message in any chat or
teams_search_messagesFind messages by text across the chats and channels the signed-in user is in. Hits come
teams_send_messagewrite actionPost a message as the signed-in user to any chat or channel, by id (from teams_list_conversations /
Public scan report
scanner v0.1.10 · 2026-11-01 · same rubric, same numbers if you re-run it
- Code scan51 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 6 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How Microsoft Teams compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 65% of 48,255 servers
- Tools
- 13
- the typical server has 7
- Tools that change things
- 8%
- typical: 0%. Fewer write tools means less an agent can break
- Downloads a week
- 291
- more than 81% of 12,191 servers with a package
What its tools let an agent do: 12 read · 1 change
Release history: 12 versions in the registry since 2026-09-21, latest 2026-10-20, typically one every 2 days.
Install Microsoft Teams in Claude Code, Cursor or VS Code
Runs npx -y @chrischall/microsoft-teams-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add microsoft-teams-mcp -- npx -y @chrischall/microsoft-teams-mcp
What the publisher says
From the Microsoft Teams repository's README, as published. We do not edit it. Read it on GitHub
microsoft-teams-mcp
MCP server for Microsoft Teams — list your chats, teams and channels, and read whichever chat or channel is currently open, routed through your signed-in browser tab.
This project was developed and is maintained by AI (Claude Code). Use at your
own discretion.
How it works — and its one real limitation
Teams Web's chat and message data lives only in a client-side cache fed by a WebSocket/registrar sync channel — there is no REST or GraphQL endpoint that returns it. So this server does not capture a token and make plain server-side requests the way an API-backed MCP would; instead every call routes through the fetchproxy browser bridge and reads the DOM your signed-in teams.cloud.microsoft tab has already rendered. teams.microsoft.com (the old host) is not supported.
That has one real consequence: this server can only read whichever chat or channel is currently displayed in your browser tab. The bridge can fetch and read — it cannot navigate a tab to a different conversation. teamslistchats and teamslistteamsandchannels always work (their sidebars are always rendered once that nav section is open); teamsgetopenchatmessages and teamsgetopenchannelposts read whatever conversation you have open. To read a different chat or channel, open it in the browser first.
The bridge is on the request path for every call here, not just once to mint a token — unlike an API-backed MCP, there is nothing to cache between calls.
Install
npm i -g @chrischall/microsoft-teams-mcpRequires the Transporter Chrome extension and @fetchproxy/cli, on a matching major version:
npm i -g @fetchproxy/cliThe first call prints a 6-digit pair code to approve in the Transporter popup; the grant persists.
Install in opencode
opencode reads MCP servers from opencode.json (project) or ~/.config/opencode/opencode.json (global):
{
"mcp": {
"servers": {
"teams": {
"type": "local",
"command": ["npx", "-y", "@chrischall/microsoft-teams-mcp"]
}
}
}
}Configuration
Everything is optional — this server needs no credentials of its own.
Tools
last-activity time, and Teams' own conversation id for each chat.
- teamslistchats — the Chat sidebar: title, last-message preview,
currently open: sender, ISO-8601 time, message id, and text.
- teamsgetopenchatmessages — the message thread of whichever chat is
DIFFERENT view from Chat): every team and channel the user belongs to, with each channel's parent team name.
- teamslistteamsandchannels — the Teams-and-Channels sidebar (a
is currently open: sender, subject (when present), prose time (not ISO-8601 — Teams doesn't expose one for these), message id, and text. Threaded replies under a post are not included.
- teamsgetopenchannelposts — the top-level posts of whichever channel
mentions, replies, reactions, and the like across every chat and channel, each with its title, message preview, prose time, and location (the team/channel or chat it happened in). Requires the Activity view open.
- teamsgetactivity — the Activity feed (the bell icon in the left nav):
- teams_healthcheck — verifies the bridge can reach a signed-in tab.
All five data tools are read-only and take no arguments.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Grade history
- 2026-11-01downgradeA → Bscore 83
Microsoft Teams: common questions
- Is Microsoft Teams MCP server safe?
- Mostly: it is graded B (83/100). Read the Microsoft Teams safety report
- How do I install Microsoft Teams?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does Microsoft Teams need an API key?
- Yes. The registry entry asks for
TEAMS_ACCESS_TOKEN,MCP_CONFIRM_SECRET. - Is Microsoft Teams maintained?
- The last commit was 9 days ago (2026-10-26). The latest release is v0.7.0.
- How does Microsoft Teams compare with other MCP servers?
- safety score 83/100 (higher than 65% of 48,255 servers); tools 13 (the typical server has 7); tools that change things 8% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.