Skip to main content
Glama

post_teams_channel_message

DestructiveIdempotent

Post a message to a Microsoft Teams channel as the authorized user. No draft mode (Teams channel posts are inherently immediate); requires confirm=true. The post appears under the connected user's identity, not the agent's.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "teamId": "<teamId>",
      "channelId": "<channelId>",
      "body": "<body>",
      "confirm": "<confirm>"
    },
    "name": "post_teams_channel_message"
  }
}

Input Schema

NameRequiredDescriptionDefault
bodyYes
teamIdYesThe team's Microsoft 365 group id, a GUID (groupId= in the Teams channel link). A team name is refused.
confirmYesMust be true to send. There is no draft for Teams.
subjectNo
channelIdYesThe channel id, 19:...@thread.tacv2 (after /channel/ in the Teams channel link, URL-encoded is accepted). A channel name is refused.
bodyContentTypeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / channelId / description
      Previous value: -"Channel id within the team."New value: +"The channel id, 19:...@thread.tacv2 (after /channel/ in the Teams channel link, URL-encoded is accepted). A channel name is refused."
    • changedInput schema / properties / teamId / description
      Previous value: -"Graph Group/Team id (the parent of the channel)."New value: +"The team's Microsoft 365 group id, a GUID (groupId= in the Teams channel link). A team name is refused."
  2. Added

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, and the description adds genuinely new context: posts are immediate with no draft path, confirm=true is mandatory, and the message is attributed to the connected user rather than the agent. It stops short of explaining visibility/audience or whether a posted message can be edited or removed, which would clarify why destructiveHint is set.

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

Conciseness5/5

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

Three short clauses, front-loaded with the action and identity, then the constraint. Every sentence carries information an agent needs before calling.

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?

For a 6-parameter mutation tool with no output schema, the definition covers the key risks: immediate posting, mandatory confirm, and user attribution. Missing are the return shape and how body/subject/bodyContentType interact, so it is good but not fully closed.

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

Parameters3/5

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

Schema coverage is 50%: teamId, channelId and confirm are well documented in the schema, and the description only reinforces the confirm requirement. The undocumented parameters (body, subject, bodyContentType) get no added meaning — notably the html/text enum and subject usage are never explained, so the description does not compensate for the coverage gap.

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 ('Post a message to a Microsoft Teams channel') plus the acting identity ('as the authorized user'), which separates it from the Outlook/comment siblings in the tool list without requiring a schema read.

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

Usage Guidelines4/5

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

Gives a clear usage condition (requires confirm=true, no draft mode) that tells the agent this is an immediately-visible action. It does not name the competing alternatives (e.g. send_outlook_message) or state when not to use it, so it falls short of full routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.