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 or channel. Requires Microsoft Teams to be running and signed in (token is read fresh from Teams' local cookies on each call). The chat_id MUST come from a previous teams_list_chats call — 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 the message was read back from the conversation (delivery verified) — trust THAT field, not a follow-up read: teams_search_messages and teams_read_chat_messages read Teams' own local sync index, which can lag a verified send by minutes (single observed case: 3 min, #2285). A zero-result sibling read right after sending is NOT evidence the send failed. A response with status "sent_unconfirmed" means the server accepted the POST but the message could NOT be verified — tell the user to open Teams itself and check before assuming the recipient was notified.

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": {
    "chat_id": {
      "description": "Thread id from teams_list_chats (e.g. '19:<uuid>_<uuid>@unq.gbl.spaces' for 1:1, '19:<uuid>@thread.tacv2' for 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 in v1.",
      "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": {
    "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?"
}