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
chat_id— Thread id from teams_list_chats (e.g. '19:<uuid>_<uuid>@unq.gbl.spaces' for 1:1, '19:<uuid>@thread.tacv2' for group)text— Plain-text message body. Max 28000 chars. No formatting / mentions / attachments in v1.
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.
- Use only the apps, accounts and resources authorized by the user on this platform. Consult this tool's platform-specific description for its connection and permission requirements; this catalog does not assert additional OAuth scopes or OS entitlements.
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
chat_id— Chat ID from teams_list_chatstext— Plain-text message body
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.
- Use only the apps, accounts and resources authorized by the user on this platform. Consult this tool's platform-specific description for its connection and permission requirements; this catalog does not assert additional OAuth scopes or OS entitlements.
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?"
}