MCP.Market

Microsoft Teams MCP server

by chrischall·io.github.chrischall/microsoft-teams-mcp·v0.7.0

Microsoft Teams for Claude — read any chat or channel and its unread messages; send and react

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

0 stars291 downloads/wk

Reviews

Write one

Nobody 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 posts

Read from the package source without running it. The installed server may list more.

  • teams_export_messages

    Bulk-export the messages of chats and channels to files — for archiving, or to search or analyse

  • teams_get_attachment

    Fetch one attachment of a Teams chat or channel message, as listed by

  • teams_healthcheck

    … The credential is the Teams chat-service

  • teams_list_activity

    Read the Teams Activity feed (the bell icon) — mentions, reactions, replies, meeting

  • teams_list_changed_conversations

    List the chats and channels that got new messages since a cursor, most recent first — counts, not

  • teams_list_channels

    List every channel the signed-in user is in, across all their teams, sorted by team

  • teams_list_conversations

    List every chat the signed-in user is in — 1:1s, group chats and meeting chats, not

  • teams_list_messages

    Read the messages of any chat or channel the signed-in user is in, by id (from

  • teams_list_unread_messages

    Get every unread message across all the chats and channels the signed-in user is in

  • teams_mark_read

    Mark a chat or channel read in Teams, clearing its unread badge: moves the signed-in user's read

  • teams_react

    Add (or, with remove: true, withdraw) the signed-in user's reaction on a message in any chat or

  • teams_search_messages

    Find messages by text across the chats and channels the signed-in user is in. Hits come

  • teams_send_messagewrite action

    Post 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

no findings
  • 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
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

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
Add to Cursor

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-mcp

Requires the Transporter Chrome extension and @fetchproxy/cli, on a matching major version:

npm i -g @fetchproxy/cli

The 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.

More from chrischall →