CtrlK
BlogDocsLog inGet started
Tessl Logo

teams-notifications

Microsoft Teams MCP integration for agent-to-human notifications and bi-directional communication. Use when agents need to post progress updates, request approvals, or read user responses via Teams channels and chats.

100

Quality

100%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security
<!-- ⚠️ This file is managed by OpenCastle. Edits will be overwritten on update. Customize in the .opencastle/ directory instead. -->

Teams Notifications

MCP Server

URL: https://mcp.microsoft365.com/mcp. Auth: OAuth 2.0 (Azure AD, scopes: Chat.ReadWrite, ChannelMessage.Send).

MCP Tools

Covers chats, messages, channels, members, and settings.

Example MCP calls

Post a progress update:

// tool: teams_messages_create
{ "channel_id": "channel-xyz", "body": "🔄 TAS-42 — In progress — implementing unit tests\nFiles: 3 (PriceFilter.tsx, test, index)" }

Read replies in thread:

// tool: teams_messages_list_replies
{ "channel_id": "channel-xyz", "thread_id": "thread-abc", "limit": 50 }

Human-in-the-Loop Approval

  1. Post approval request — verify the response confirms message_id:
// tool: teams_messages_create
{ "channel_id": "channel-xyz", "body": "⏳ Approval Required\nTask: TAS-42 — Run migration on production\nReply: Approve or Reject", "threading": { "start_thread": true } }
// → { "message_id": "msg-123", "thread_id": "thread-abc" }

If post fails: retry once; if still failing, fall back to asking in chat only.

  1. Poll for response (5s interval, 5 min timeout):
const replies = await teams_messages_list_replies({ channel_id: channelId, thread_id: threadId, limit: 50 });
for (const r of replies || []) {
  if (/\b(approve|yes)\b/i.test(r.body)) return 'approved';
  if (/\b(reject|no)\b/i.test(r.body)) return 'rejected';
}
// Retry after 5s; timeout after 5 min → post escalation message
  1. Acknowledge — Post confirmation of the action taken and close the thread.

Channel & Chat Conventions

Threading Rules

  • Always reply in threads; one thread per task; include tracker issue ID in every message.

Message Formatting

Adaptive Cards and advanced payloads

For large Adaptive Card JSON, rate limits, and security considerations see REFERENCE.md. Use Adaptive Cards when structured inputs or buttons are required; otherwise post a simple threaded message.

Repository
monkilabs/opencastle
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.