Skip to main content
Glama

reply_to_channel_message

Send a threaded reply to an existing Microsoft Teams channel message using its message_id, with optional @mentions in plain text content.

Instructions

Reply to a message in a Teams channel thread.

Use list_channel_messages to get the message_id to reply to. For new top-level messages, use send_channel_message instead.

content is plain text: newlines are kept and URLs become links; Markdown and HTML show literally. Each mention's "@" must appear in content exactly as given in name, or that mention is dropped without an error.

mentions: optional JSON array of users or team tags to @mention. Format: [{"user_id": "...", "name": "Display Name"} | {"tag_id": "...", "name": "TagName"}] Get tag_id from list_team_tags (tags work only in channel messages). Use @DisplayName in content where the mention should appear.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYes
team_idYes
mentionsNo
channel_idYes
message_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.5.0

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and discloses real behaviors: content is plain text (newlines kept, URLs linkified, Markdown/HTML rendered literally) and a mention whose '@<name>' does not exactly match is silently dropped without error. It still omits permission requirements and any rate-limit or error semantics, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and alternatives in the first lines, then sections the content and mentions semantics. Multi-line but every clause carries information; slightly longer than strictly necessary for a routing statement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and the description fills the two behavioral gaps the annotations and schema leave open (content rendering and mention matching). Only mutation-side concerns like required permissions remain unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate: it fully documents the two non-obvious parameters, spelling out plain-text rendering rules for content and an otherwise opaque mention format ({"user_id","name"} or {"tag_id","name"}) plus where to get tag_id. The three ID parameters (team_id, channel_id, message_id) are left implicitly documented only by their names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Reply to a message in a Teams channel thread'), which unambiguously separates it from send_channel_message (new top-level) and send_chat_message. An agent can pick it correctly without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent: use list_channel_messages to obtain message_id, and use send_channel_message for new top-level messages instead. It also names list_team_tags as the source of tag_id, covering when-to-use and the closest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.