Skip to content
All tools

teams_send_message

Microsoft Teams · macOS · Windows

Effect: send (strongest supported action). Status: gated.

Gated means the tool requires an installed app, a connected account, permission, or runtime availability. Check those requirements on the listed platform before using it.

macOS

Purpose

Sends a text message to a Microsoft Teams chat as a connected Microsoft 365 work or school account (connect_m365_account), through Microsoft 365. The chat_id MUST come from teams_list_chats of the same account — never fabricate ids. This is a write operation: the first call returns a preview, the second call (with confirm=true) actually sends. sent:true means Microsoft accepted the message; teams_search_messages reads Microsoft's search index, which can lag behind a send, so a zero-result search right after sending is NOT evidence the send failed.

Required inputs

Permissions and confirmation

Explicit confirmation parameter: inspect the schema and tool description before any real call. The documentation example keeps confirm false. Obtain user authorization before performing the action.

Full input schema — macOS
{
  "properties": {
    "account": {
      "description": "Which connected Microsoft 365 account to use: its email (UPN), its id from list_m365_accounts, or its display name when unique. Leave it out to use the default account.",
      "type": "string"
    },
    "chat_id": {
      "description": "Chat id from teams_list_chats (e.g. '19:<uuid>_<uuid>@unq.gbl.spaces' for 1:1, '19:<id>@thread.v2' for a group)",
      "type": "string"
    },
    "confirm": {
      "description": "Must be true to actually send. Without it, returns a preview without making any network call.",
      "type": "boolean"
    },
    "text": {
      "description": "Plain-text message body. Max 28000 chars. No formatting / mentions / attachments.",
      "type": "string"
    }
  },
  "required": [
    "chat_id",
    "text"
  ],
  "type": "object"
}

Documentation example

Do not execute this example. These concrete inputs refer to a fictional demonstration dataset. Resolve real handles and obtain user authorization before any real call.

{
  "chat_id": "demo-chat-001",
  "confirm": false,
  "text": "Can we review the launch checklist on Tuesday?"
}

Windows

Purpose

Send a message to a Microsoft Teams chat via Graph API. Requires connect_m365_account. chat_id must come from teams_list_chats. First call returns preview; set confirm=true to send.

Required inputs

Permissions and confirmation

Explicit confirmation parameter: inspect the schema and tool description before any real call. The documentation example keeps confirm false. Obtain user authorization before performing the action.

Full input schema — Windows
{
  "properties": {
    "account": {
      "description": "Which connected Microsoft 365 account to use: its email (UPN), its id from list_m365_accounts, or its display name when unique. Leave it out to use the default account.",
      "type": "string"
    },
    "chat_id": {
      "description": "Chat ID from teams_list_chats",
      "type": "string"
    },
    "confirm": {
      "description": "Set true to send; false returns preview",
      "type": "boolean"
    },
    "text": {
      "description": "Plain-text message body",
      "type": "string"
    }
  },
  "required": [
    "chat_id",
    "text"
  ],
  "type": "object"
}

Documentation example

Do not execute this example. These concrete inputs refer to a fictional demonstration dataset. Resolve real handles and obtain user authorization before any real call.

{
  "chat_id": "demo-chat-001",
  "confirm": false,
  "text": "Can we review the launch checklist on Tuesday?"
}