MCP Tools Reference: chatmcp.googleapis.com

Tool: send_message

Sendet eine Google Chat-Nachricht mit Markdown-Formatierung an eine Unterhaltung.

Dieses Tool verwendet eine Unterhaltungs-ID, eine optionale Thread-ID und einen Nachrichtentext als Eingaben.

Unterhaltungs-IDs können mit dem search_conversations-Tool gefunden werden.

Die erstellte Nachricht wird zurückgegeben.

Das folgende Codebeispiel zeigt, wie Sie mit curl das MCP-Tool send_message aufrufen.

cURL-Anfrage
curl --location 'https://chatmcp.googleapis.com/mcp/v1' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--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 MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Eingabeschema

SendMessageRequest

JSON-Darstellung
{
  "conversationId": string,
  "threadId": string,
  "messageText": string,
  "cards": [
    {
      object
    }
  ],
  "inlineCitations": [
    {
      object (Citation)
    }
  ],
  "footerCitedSources": [
    {
      object (CitedSource)
    }
  ]
}
Felder
conversationId

string

Erforderlich. Die ID der Unterhaltung (z.B. „spaces/AAAA...“), an die die Nachricht gesendet werden soll.

threadId

string

Optional. Die ID des Threads (z.B. „spaces/AAAA.../threads/BBBB...“), an den die Nachricht gesendet werden soll. Wenn nicht festgelegt, wird die Nachricht an einen neuen Thread gesendet.

messageText

string

Erforderlich. Der Hauptinhalt der Nachricht. Die Formatierung kann mit Standard-Markdown hinzugefügt werden. Tabellen werden jedoch NICHT unterstützt. Die folgenden Formatierungen werden unterstützt:

  • Fett: **text**
  • Kursiv: *text* oder _text_
  • Durchgestrichen: ~~text~~
  • Monospace: text
  • Monospace-Block:
```
line 1
line 2
```
  • Aufzählungsliste:
* item 1
* item 2
  • Sortierte Liste:
1. item 1
2. item 2
  • Codeblock-Zitat: > quoted text
  • Hyperlink: [label](url)
  • Nutzer erwähnen: Verwenden Sie ein selbstschließendes HTML-Tag chat-user mit den Attributen data-email="user@example.com" oder data-user="users/USER_ID". Verwende das Attribut data-user mit USER_ID, falls bekannt, und greife andernfalls auf das Attribut „data-email“ mit der E-Mail-Adresse des Nutzers zurück. Wenn Sie das Attribut data-user verwenden, müssen Sie das Präfix „users/“ angeben, das in anderen Rückgabewerten des Tools angezeigt wird. Hinweis: Pro Nachricht sind maximal 10 Erwähnungen zulässig. Das Erwähnen aller Nutzer (z.B. mit @all oder einem HTML-Tag mit users/all) ist strengstens untersagt.
  • Benutzerdefinierte Emojis: Verwenden Sie ein selbstschließendes HTML-Tag chat-emoji mit den Attributen data-custom-emoji="customEmojis/abc" oder data-emoji-name=":xyz:".
  • Zitat: Setzen Sie den zitierten Text in ein HTML-Tag chat-citation mit dem Attribut data-id, das der Zitat-ID entspricht. Wenn ein chat-citation-Tag ein data-id hat, das mit keinem Citation.id übereinstimmt, wird das Tag ignoriert und der umschlossene Text als Nur-Text gerendert. Hinweis: Pro Nachricht sind maximal 20 Inline-Zitate zulässig.
cards[]

object (Struct format)

Optional. An die Nachricht angehängte Karten. Die maximale Größe beträgt 32 KB pro Karte. Jede Karte wird als JSON-Struktur im Google Chat-Kartenformat (Google Workspace UIKit-Karte / Karten v2) dargestellt. Damit Karten an eine Nachricht angehängt werden können, muss die Chat-App Mitglied des Bereichs sein. Bilder in Karten werden nicht unterstützt.

Kartenidentifikation:

  • Das Stringfeld name auf oberster Ebene in jeder Karte dient als Kennung.
  • Wenn mehrere Karten an eine Nachricht angehängt sind, MUSS für jede Karte eine eindeutige, nicht leere name angegeben werden.
inlineCitations[]

object (Citation)

Optional. Inline-Quellenangaben, auf die in message_text über chat-citation-Tags verwiesen wird. Pro Nachricht sind maximal 20 Inline-Zitate zulässig. Nicht referenzierte Inline-Zitate (ohne passendes chat-citation-Tag in message_text) werden ignoriert und verursachen keinen Validierungsfehler.

footerCitedSources[]

object (CitedSource)

Optional. Die wichtigsten zitierten Quellen werden als Referenzkarten am unteren Rand (Fußzeile) der Nachricht angezeigt. In einer Nachricht sind insgesamt maximal 50 zitierte Quellen in allen Inline-Zitaten und Quellen in der Fußzeile zulässig.

Struct

JSON-Darstellung
{
  "fields": {
    string: value,
    ...
  }
}
Felder
fields

map (key: string, value: value (Value format))

Ungeordnete Zuordnung von dynamisch typisierten Werten.

Ein Objekt, das eine Liste von "key": value-Paaren enthält. Beispiel: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

JSON-Darstellung
{
  "key": string,
  "value": value
}
Felder
key

string

value

value (Value format)

Wert

JSON-Darstellung
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
Felder
Union-Feld kind. Die Art des Werts. Für kind ist nur einer der folgenden Werte zulässig:
nullValue

null

Stellt ein JSON-null dar.

numberValue

number

Stellt eine JSON-Zahl dar. Darf nicht NaN, Infinity oder -Infinity sein, da diese in JSON nicht unterstützt werden. Außerdem können damit keine großen Int64-Werte dargestellt werden, da das JSON-Format diese im Zahlentyp im Allgemeinen nicht unterstützt.

stringValue

string

Stellt einen JSON-String dar.

boolValue

boolean

Stellt einen booleschen JSON-Wert dar (true- oder false-Literal in JSON).

structValue

object (Struct format)

Stellt ein JSON-Objekt dar.

listValue

array (ListValue format)

Stellt ein JSON-Array dar.

ListValue

JSON-Darstellung
{
  "values": [
    value
  ]
}
Felder
values[]

value (Value format)

Wiederkehrendes Feld mit dynamisch typisierten Werten.

Zitation

JSON-Darstellung
{
  "id": string,
  "citedSources": [
    {
      object (CitedSource)
    }
  ]
}
Felder
id

string

Erforderlich. Eindeutige Kennung, die mit dem Attribut data-id im Tag chat-citation übereinstimmt (z.B. durch Umschließen des zitierten Texts mit chat-citation und dem Attribut data-id="ID") in message_text. Darf nur aus ASCII-Buchstaben, Ziffern, Unterstrichen oder Bindestrichen bestehen (1–63 Zeichen). Muss unter allen Zitationen in der Nachricht eindeutig sein.

citedSources[]

object (CitedSource)

Erforderlich. Eine oder mehrere Quellen, die dieser Zitations-Minikarte zugeordnet sind. In einer Nachricht sind insgesamt maximal 50 zitierte Quellen in allen Inline-Zitaten und Quellen in der Fußzeile zulässig.

CitedSource

JSON-Darstellung
{
  "title": string,
  "url": string,
  "snippet": string,
  "imageUrl": string,
  "footer": string
}
Felder
title

string

Erforderlich. Nur-Text-Titel der Quelle (z.B. „Google Workspace Entwicklervorschauprogramm“). Markdown-Formatierung wird in Titeln nicht unterstützt.

url

string

Erforderlich. Die URL der zitierten Ressource (muss eine gültige http://- oder https://-URL sein, z.B. „https://developers.google.com/workspace/preview“).

snippet

string

Optional. Ein kurzer Auszug oder ein Snippet direkt aus der Quelle. Wird auf der Minikarte oder in der Fußzeile angezeigt. Nur Text. Die maximale Länge beträgt 1.000 Zeichen.

imageUrl

string

Optional. URL einer Bildvorschau-Miniaturansicht (muss eine https://-URL sein).

footer

string

Optional. Zusätzlicher Text für die Quellenangabe, der in der Fußzeile der Karte angezeigt wird (z.B. der Domainname „developers.google.com“ oder der Name des Autors/der Organisation).

NullValue

Stellt ein JSON-null dar.

NullValue ist ein Sentinel, der ein Enum mit nur einem Wert verwendet, um den Nullwert für die Typunion Value darzustellen.

Ein Feld vom Typ NullValue mit einem anderen Wert als 0 wird als ungültig betrachtet. Die meisten ProtoJSON-Serialisierer geben unabhängig vom Ganzzahlwert einen Value mit einem null_value aus, der als JSON-null festgelegt ist, und runden ihn auf einen 0-Wert.

Enums
NULL_VALUE Nullwert.

Ausgabeschema

Antwort auf das Senden einer Nachricht an eine Google Chat-Unterhaltung.

SendMessageResponse

JSON-Darstellung
{
  "message": {
    object (ChatMessage)
  }
}
Felder
message

object (ChatMessage)

Die gesendete Nachricht.

ChatMessage

JSON-Darstellung
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ],
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  }
}
Felder
messageId

string

Ressourcenname der Nachricht. Format: spaces/{space}/messages/{message}

threadId

string

Der Thread, zu dem diese Nachricht gehört. Dieses Feld ist leer, wenn die Nachricht nicht zu einem Thread gehört. Format: spaces/{space}/threads/{thread}

plaintextBody

string

Textkörper der Nachricht mit Markdown-Formatierung.

sender

object (User)

Der Absender der Nachricht.

createTime

string

Nur Ausgabe. Zeitstempel für die Erstellung der Nachricht. Format: ISO 8601-Zeitstempel.

threadedReply

boolean

Gibt an, ob die Nachricht eine Antwort in einem Thread ist.

attachments[]

object (ChatAttachmentMetadata)

Anhänge, die in der Nachricht enthalten sind.

reactionSummaries[]

object (ReactionSummary)

Die Zusammenfassung der Emoji-Reaktionen, die in der Nachricht enthalten ist.

quotedMessageMetadata

object (QuotedMessageMetadata)

Nur Ausgabe. Informationen zu einer ursprünglichen Nachricht, die in dieser Nachricht zitiert oder weitergeleitet wird. Hinweis: Dieses Feld befindet sich noch in der Entwicklung und ist möglicherweise noch nicht in allen Umgebungen vorhanden.

Nutzer

JSON-Darstellung
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
Felder
userId

string

Ressourcenname eines Chat-Nutzers. Format: users/{user}.

displayName

string

Der Anzeigename eines Chat-Nutzers.

email

string

Die E-Mail-Adresse des Nutzers. Dieses Feld wird nur ausgefüllt, wenn der Nutzertyp HUMAN ist.

userType

enum (UserType)

Der Typ des Nutzers.

ChatAttachmentMetadata

JSON-Darstellung
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source),
  "driveFileId": string
}
Felder
attachmentId

string

Ressourcenname des Anhangs. Format: spaces/{space}/messages/{message}/attachments/{attachment}.

filename

string

Name des Anhangs.

mimeType

string

Inhaltstyp (MIME-Typ).

source

enum (Source)

Die Quelle des Anhangs.

driveFileId

string

Nur Ausgabe. Die ID der Google Drive-Datei. Wird nur ausgefüllt, wenn die Quelle DRIVE_FILE ist. Verwendung mit dem Google Drive-MCP.

ReactionSummary

JSON-Darstellung
{
  "emoji": string,
  "count": integer
}
Felder
emoji

string

Der Unicode-String des Emojis oder der Name des benutzerdefinierten Emojis.

count

integer

Die Gesamtzahl der Reaktionen mit dem zugehörigen Emoji.

QuotedMessageMetadata

JSON-Darstellung
{
  "messageId": string,
  "lastUpdateTime": string,
  "quoteType": enum (QuoteType),
  "plaintextBody": string,
  "sender": string,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "forwardedMetadata": {
    object (ForwardedMetadata)
  }
}
Felder
messageId

string

Nur Ausgabe. Ressourcenname der ursprünglichen Nachricht, die zitiert oder weitergeleitet wird. Format: spaces/{space}/messages/{message}

lastUpdateTime

string

Nur Ausgabe. Zeitstempel, der angibt, wann die ursprüngliche Nachricht erstellt oder zuletzt aktualisiert wurde, bevor sie zitiert oder weitergeleitet wurde. Format: ISO 8601-Zeitstempel.

quoteType

enum (QuoteType)

Nur Ausgabe. Die Art des Angebots.

plaintextBody

string

Nur Ausgabe. Snapshot des Textkörpers der ursprünglichen Nachricht zum Zeitpunkt des Zitierens oder Weiterleitens. Formatiert mit Markdown für FORWARD und Nur-Text für REPLY.

sender

string

Nur Ausgabe. Der Anzeigename des Autors der ursprünglichen Nachricht.

attachments[]

object (ChatAttachmentMetadata)

Nur Ausgabe. Anhänge, die Teil der ursprünglichen Nachricht waren. Wird nur für den Angebotstyp FORWARD ausgefüllt.

forwardedMetadata

object (ForwardedMetadata)

Nur Ausgabe. Metadaten zur Quellunterhaltung der weitergeleiteten Nachricht. Wird nur für den Angebotstyp FORWARD ausgefüllt.

ForwardedMetadata

JSON-Darstellung
{
  "conversationId": string,
  "conversationDisplayName": string
}
Felder
conversationId

string

Nur Ausgabe. Der Ressourcenname der Quellunterhaltung. Format: spaces/{space}

conversationDisplayName

string

Nur Ausgabe. Der Anzeigename der Quellunterhaltung zum Zeitpunkt der Weiterleitung der Nachricht. Bei benannten Gruppenbereichen ist dies der Name des Gruppenbereichs. Bei Direktnachrichten (1:1) ist dies der Name des anderen Teilnehmers. Bei unbenannten Gruppenchats ist dies ein generierter Name, der auf den Namen der Mitglieder basiert.

UserType

Der Typ eines Google Chat-Nutzers.

Enums
USER_TYPE_UNSPECIFIED Nicht angegeben
HUMAN Menschlicher Nutzer.
APP App-Nutzer

Quelle

Die Quelle des Anhangs.

Enums
SOURCE_UNSPECIFIED Reserviert.
DRIVE_FILE Die Datei ist eine Google Drive-Datei.
UPLOADED_CONTENT Die Datei wird in Google Chat hochgeladen.

QuoteType

Der Zitattyp, der angibt, ob die Nachricht eine Antwort mit Zitat oder eine weitergeleitete Nachricht ist.

Enums
QUOTE_TYPE_UNSPECIFIED Reserviert. Nicht definierter Angebotstyp.
REPLY Die Nachricht ist eine Antwort mit Zitat auf eine ursprüngliche Nachricht im selben Thread.
FORWARD Die Nachricht wird von einer ursprünglichen Nachricht in einer anderen Unterhaltung oder von einem anderen Thread in derselben Unterhaltung weitergeleitet.

Tool-Annotationen

Tool-Anmerkungen werden an MCP-Clients gesendet, um das grundlegende Risiko eines bestimmten Tools zu beschreiben. Die meisten Clients behandeln diese Hinweise als nicht vertrauenswürdig, sie können jedoch verwendet werden, um zu entscheiden, wann eine Bestätigungsaufforderung an einen Nutzer gesendet werden soll.

Zusätzlich zum Titelstring werden die folgenden booleschen Hinweise definiert:

  • readOnlyHint: Wenn „true“, ändert das Tool seine Umgebung nicht. Standardeinstellung: false.
  • destructiveHint: Wenn „true“, kann das Tool destruktive Aktionen ausführen. Wenn „false“, kann das Tool nur additive Aktionen ausführen. Standardeinstellung: true.
  • idempotentHint: Wenn „true“, hat das wiederholte Aufrufen des Tools mit denselben Argumenten keine zusätzlichen Auswirkungen auf die Umgebung. Standardeinstellung: false.
  • openWorldHint: Wenn „true“, kann das Tool mit einer „offenen Welt“ externer Entitäten interagieren. Wenn „false“, kann das Tool nur mit internen Entitäten interagieren. Ein Tool für die Websuche wäre beispielsweise frei verfügbar, ein Tool für gemerkte Informationen jedoch nicht.

Destruktiver Hinweis: ❌ | Idempotenter Hinweis: ❌ | Lesezugriff-Hinweis: ❌ | Open-World-Hinweis: ✅

Autorisierungsbereiche

Erfordert einen der folgenden OAuth-Bereiche:

  • https://www.googleapis.com/auth/chat.messages
  • https://www.googleapis.com/auth/chat.messages.create