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
chat_id— Chat id from teams_list_chats (e.g. '19:<uuid>_<uuid>@unq.gbl.spaces' for 1:1, '19:<id>@thread.v2' for a group)text— Plain-text message body. Max 28000 chars. No formatting / mentions / attachments.
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": {
"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
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": {
"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?"
}