Teams Puppeteer MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEVTOOLS_PORT | No | Connect to an already running Chrome instance with remote debugging. If not set, the port is auto-detected (defaults to 9222). | 9222 |
| TEAMS_HEADLESS | No | Set to "true" to run browser in the background after initial login. | false |
| TEAMS_PROFILE_DIR | No | Custom directory path for browser cache & persistent session cookies. | ~/.teams_puppeteer_profile |
| PUPPETEER_EXECUTABLE_PATH | No | Explicit path to your Chrome or Microsoft Edge executable. If not set, the path is auto-detected. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_last_messageA | PRIMARY TOOL to read the single latest message from a specific person, group, or channel in Teams. Supports partial names (e.g. 'Alice Smith', 'Bob', 'Project Alpha'). Automatically matches the chat and returns only the author, timestamp, and text. NEVER call list_teams_chats first. |
| get_last_unread_messageA | Reads unread messages. If 'chat_name' is provided, returns the latest unread message in that specific chat. If 'chat_name' is omitted, scans all Teams chats and returns a compact list of all unread messages with their senders and text in one single call. NEVER call list_teams_chats first. |
| get_last_messagesA | Reads the last N messages from a specific Teams chat. Use this ONLY when the user asks for multiple recent messages or recent conversation history. NEVER call list_teams_chats first. |
| send_teams_messageA | Sends a text message to a specified Microsoft Teams chat or group. |
| list_teams_chatsA | Lists chat names and activity timestamps from the Teams sidebar. Use ONLY when the user explicitly asks to list, see, or browse their conversations. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 5 tools
The read tools overlap somewhat—get_last_message, get_last_unread_message, and get_last_messages all retrieve recent messages—but their purposes are differentiated by unread status, scope, and message count. The descriptions are explicit about when to use each, so agent misselection is unlikely but still possible.
Tool names mostly follow a clear verb_noun pattern: get_last_*, send_teams_message, list_teams_chats. The get_last_message and get_last_messages singular/plural distinction is a minor inconsistency, but the overall pattern is readable and predictable.
With only five tools, the set is tightly scoped for Teams messaging operations. Each tool serves a distinct core need—read latest, read unread, read history, send, list—without unnecessary bloat.
The set covers the primary Teams workflows: reading recent messages, checking unread activity, sending messages, and listing conversations. Minor gaps exist such as marking messages as read or searching historical messages, but agents can accomplish most common tasks without dead ends.