teams

Send and read Microsoft Teams messages, manage chats, channels, and members via MCP tools.

1|Updated May 13, 2026
One-click install
npx skills add https://github.com/coolrobertj/Agency-Cowork --skill teams-coolrobertj
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: teams
Source: https://github.com/coolrobertj/Agency-Cowork/tree/main/skills/teams/skills/teams
Command: npx skills add https://github.com/coolrobertj/Agency-Cowork --skill teams-coolrobertj

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires playwright, and includes scripts (resource) and references (resource) components.

What problem does it solve? Interacting with Microsoft Teams programmatically is slow and error-prone when every operation requires expensive API calls to resolve people, chats, and channel IDs. This Skill wraps the microsoft-teams MCP server with a local two-tier cache and rich messaging scripts so Teams operations resolve instantly and support formatted content. ## Core Features & Use Cases - Messaging: Send plain text, markdown-converted HTML, @mentions, Adaptive Cards, and file attachments to chats and channels, with CLI commands that handle markdown conversion and validation automatically. - Chat, Team & Channel Management: List, create, update, and delete chats and channels, manage members, and search conversations using OData query parameters like $top, $filter, and $orderby. - Local Cache Layer: A recent-contacts markdown file plus JSON caches (chats, teams, people) with a 4-hour staleness policy and a resolve command that finds IDs without MCP calls. - Use Case: Ask your agent to "send a formatted project update to the Engineering channel with a table and emoji" — it resolves the channel from cache, converts markdown to Teams HTML, validates links, and posts via Graph API. ## Quick Start Ask your agent to send a Teams message to a colleague by name, and it will resolve their chat from the local cache and deliver the message.

Frequently Asked Questions about teams

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I send a formatted message to a Microsoft Teams chat?

Use the send-rich CLI command with a markdown body file: python -m scripts.api send-rich --chat CHAT_ID --body-file body.md. It converts markdown to Teams HTML, validates emoji and links, and sends via chatsvc without needing a browser.

How do I find a person's Teams chat ID quickly?

Run python scripts/cache-manager.py resolve "<name>" to search the local recent-contacts file and JSON caches instantly. If not found, use WorkIQ to get their UPN, then a filtered ListChats call with top: 20.

Why does ListChats time out in Microsoft Teams?

Unfiltered ListChats calls fetch all chats and time out for users with hundreds of conversations. Always pass the top parameter (e.g., top: 20) with pagination, and prefer cache lookups or UPN-filtered queries first.

Can I send @mentions and Adaptive Cards in Teams messages?

Yes, @mentions and Adaptive Cards are supported through the Playwright-based send_message.py script using --mention-name/--mention-mri and --card flags. Standard formatted messages without mentions use the faster send-rich CLI instead.

How does the Teams cache stay up to date?

Cache files auto-refresh when older than 4 hours or on explicit refresh commands. After every successful operation, newly resolved people, chats, and channels are appended to recentcontacts.md via cache-manager add commands.