MCP Tools Reference: chatmcp.googleapis.com

Tool: send_message

Sends a Google Chat message to a conversation with Markdown formatting.

This tool uses a conversation ID, an optional thread ID, and a message text as inputs. Conversation ID's can be found using the search_conversations tool. It returns the created message.

The following sample demonstrate how to use curl to invoke the send_message MCP tool.

Curl Request
curl --location 'https://chatmcp.googleapis.com/mcp/v1' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "send_message",
    "arguments": {
      // provide these details according to the tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'
                

Input Schema

Request to send a message to a Google Chat conversation.

SendMessageRequest

JSON representation
{
  "conversationId": string,
  "threadId": string,
  "messageText": string
}
Fields
conversationId

string

Required. The ID of the conversation (e.g., 'spaces/AAAA...') to send the message to.

threadId

string

Optional. The ID of the thread (e.g., 'spaces/AAAA.../threads/BBBB...') to send the message to. If not set, the message will be sent to a new thread.

messageText

string

Required. The main content of the message. Formatting can be added using standard Markdown (note that tables are NOT supported). The following formatting is supported:

  • Bold: **text**
  • Italic: *text* or _text_
  • Strikethrough: ~~text~~
  • Monospace: text
  • Monospace block:
```
line 1
line 2
```
  • Bulleted list:
* item 1
* item 2
  • Ordered list:
1. item 1
2. item 2
  • Block quote: > quoted text
  • Hyperlink: [label](url)
  • Mention user: Use a self-closing HTML tag chat-user with attributes data-email="user@example.com" or data-name="USER_ID". Prefer the data-name attribute with USER_ID if known and fallback to the data-email attribute with the user email otherwise. If you use the data-name attribute make sure to use the raw numeric USER_ID and NOT include the users/ prefix seen in other tool return values. Note: A maximum of 10 mentions are allowed per message. Mentioning all users (e.g., using @all or an HTML tag with users/all) is strictly prohibited.
  • Custom emoji: Use a self-closing HTML tag chat-custom-emoji with attributes data-uid="abc" and data-emoji-name=":xyz:".

Output Schema

Response to sending a message to a Google Chat conversation.

SendMessageResponse

JSON representation
{
  "message": {
    object (ChatMessage)
  }
}
Fields
message

object (ChatMessage)

The message that was sent.

ChatMessage

JSON representation
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ]
}
Fields
messageId

string

Resource name of the message. Format: spaces/{space}/messages/{message}

threadId

string

The thread this message belongs to. This will be empty if the message is unthreaded. Format: spaces/{space}/threads/{thread}

plaintextBody

string

Text body of the message using Markdown formatting.

sender

object (User)

The sender of the message.

createTime

string

Output only. Timestamp when the message was created.

threadedReply

boolean

Whether message is a thread reply.

attachments[]

object (ChatAttachmentMetadata)

Attachments included in the message.

reactionSummaries[]

object (ReactionSummary)

The emoji reactions summary included in the message.

User

JSON representation
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
Fields
userId

string

Resource name of a Chat user. Format: users/{user}.

displayName

string

The display name of a Chat user.

email

string

The email address of the user. This field is only populated when the user type is HUMAN.

userType

enum (UserType)

The type of the user.

ChatAttachmentMetadata

JSON representation
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source)
}
Fields
attachmentId

string

Resource name of the attachment. Format: spaces/{space}/messages/{message}/attachments/{attachment}.

filename

string

Name of the attachment.

mimeType

string

Content type (MIME type).

source

enum (Source)

The source of the attachment.

ReactionSummary

JSON representation
{
  "emoji": string,
  "count": integer
}
Fields
emoji

string

The emoji unicode string or custom emoji name.

count

integer

The total number of reactions using the associated emoji.

UserType

The type of a Google Chat user.

Enums
USER_TYPE_UNSPECIFIED Unspecified.
HUMAN Human user.
APP App user.

Source

The source of the attachment.

Enums
SOURCE_UNSPECIFIED Reserved.
DRIVE_FILE The file is a Google Drive file.
UPLOADED_CONTENT The file is uploaded to Chat.

Tool Annotations

Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ❌ | Open World Hint: ✅