Teams Assistant Mcp banner
Agentic-Delivery Agentic-Delivery

Teams Assistant Mcp

Development community

Description

Stdio MCP server that lets a Claude Code agent read and post in a fixed allowlist of Microsoft Teams group chats

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

teams-assistant-mcp

An MCP server that lets a Claude Code agent read and post in a fixed set of Microsoft Teams group chats. It signs in as an ordinary user account with a username and password, so from Teams' point of view there is a person in the chat, not a bot.

It is not built to scale. One server per project, one account, one short list of chats. That was the point: get a working two-way channel between an agent and the people in a pilot without waiting on an app registration, admin consent, or a Teams app manifest.

This repo ships the server on its own. Consuming projects install the compiled output; none of them carry this source tree.

Companion skill: teams-styling

The repo also ships a Claude Code plugin, `teams-styling` ([plugins/teams-styling](plugins/teams-styling)), that teaches an agent how to compose messages people actually want to read: when to style and when to stay plain, the HTML vocabulary Teams verifiably renders (verified by screenshot against the real client, not inferred from docs), known rendering quirks, and a live status-board pattern for making agent progress visible in the chat. Install it by adding this repo as a Claude Code plugin marketplace. Styled output needs the raw-HTML path the skill assumes: pass `format: 'html'` to `send_chat_message`/`edit_chat_message` (default `'text'` still escapes everything), or `--html` to `teams-post`/`teams-edit`. The caller owns entity-escaping `<`, `>`, `&` inside their own content on that path — the server posts it verbatim.

Getting started

**[SETUP.md](SETUP.md)** is the zero-to-working manual: requesting the account, `.env`, finding chat ids, the allowlist, wiring the server into a Claude Code agent, and the tool reference. The rest of this README is background on how and why the thing works.

How it works

Claude Code  --stdio-->  teams-assistant-mcp  --HTTPS-->  Microsoft Graph  -->  Teams
                                |
                           allowlist  (refuses an