Narzędzie: send_message
Wysyła wiadomość na czacie w Google Chat do rozmowy z formatowaniem Markdown.
To narzędzie używa identyfikatora rozmowy, opcjonalnego identyfikatora wątku i tekstu wiadomości jako danych wejściowych.
Identyfikatory rozmów można znaleźć za pomocą narzędzia search_conversations.
Zwraca utworzoną wiadomość.
Poniższy przykładowy kod pokazuje, jak używać curl do wywoływania narzędzia MCP send_message.
| Żądanie Curl |
|---|
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 }' |
Schemat wejściowy
SendMessageRequest
| Zapis JSON |
|---|
{ "conversationId": string, "threadId": string, "messageText": string, "cards": [ { object } ], "inlineCitations": [ { object ( |
| Pola | |
|---|---|
conversationId |
Wymagane. Identyfikator rozmowy (np. „spaces/AAAA...”), do której ma zostać wysłana wiadomość. |
threadId |
Opcjonalnie: Identyfikator wątku (np. „spaces/AAAA.../threads/BBBB...”), do którego ma zostać wysłana wiadomość. Jeśli nie zostanie ustawiony, wiadomość zostanie wysłana do nowego wątku. |
messageText |
Wymagane. Główna treść wiadomości. Formatowanie można dodać za pomocą standardowego języka Markdown (pamiętaj, że tabele NIE są obsługiwane). Obsługiwane jest to formatowanie:
|
cards[] |
Opcjonalnie: Karty dołączone do wiadomości. Maksymalny rozmiar to 32 KB na kartę. Każda karta jest reprezentowana jako struktura JSON zgodna z formatem karty Google Chat (Google Workspace UIKit Card / Cards v2). Aby dołączyć karty do wiadomości, aplikacja Google Chat musi być członkiem pokoju. Obrazy na kartach nie są obsługiwane. Identyfikacja karty:
|
inlineCitations[] |
Opcjonalnie: Cytaty w tekście, do których odwołują się tagi |
footerCitedSources[] |
Opcjonalnie: Najważniejsze cytowane źródła wyświetlane jako karty referencyjne u dołu (w stopce) wiadomości. W jednej wiadomości może być maksymalnie 50 cytowanych źródeł we wszystkich cytatach w tekście i źródłach w stopce. |
Struct
| Zapis JSON |
|---|
{ "fields": { string: value, ... } } |
| Pola | |
|---|---|
fields |
Nieuporządkowana mapa wartości o typie dynamicznym. Obiekt zawierający listę par |
FieldsEntry
| Zapis JSON |
|---|
{ "key": string, "value": value } |
| Pola | |
|---|---|
key |
|
value |
|
Wartość
| Zapis JSON |
|---|
{ "nullValue": null, "numberValue": number, "stringValue": string, "boolValue": boolean, "structValue": { object }, "listValue": array } |
| Pola | |
|---|---|
Pole zbiorcze kind. Rodzaj wartości. kind może mieć tylko jedną z tych wartości: |
|
nullValue |
Reprezentuje obiekt JSON |
numberValue |
Reprezentuje liczbę JSON. Nie może to być |
stringValue |
Reprezentuje ciąg JSON. |
boolValue |
Reprezentuje wartość logiczną JSON (literał |
structValue |
Reprezentuje obiekt JSON. |
listValue |
Reprezentuje tablicę JSON. |
ListValue
| Zapis JSON |
|---|
{ "values": [ value ] } |
| Pola | |
|---|---|
values[] |
Pole powtarzane wartości wpisywanych dynamicznie. |
Cytat
| Zapis JSON |
|---|
{
"id": string,
"citedSources": [
{
object ( |
| Pola | |
|---|---|
id |
Wymagane. Unikalny identyfikator pasujący do atrybutu |
citedSources[] |
Wymagane. Co najmniej 1 źródło dołączone do tej karty informacyjnej z cytatem. W jednej wiadomości może być maksymalnie 50 cytowanych źródeł we wszystkich cytatach w tekście i źródłach w stopce. |
CitedSource
| Zapis JSON |
|---|
{ "title": string, "url": string, "snippet": string, "imageUrl": string, "footer": string } |
| Pola | |
|---|---|
title |
Wymagane. Tytuł źródła w postaci zwykłego tekstu (np. „Program wersji przedpremierowej Google Workspace dla deweloperów”). Formatowanie Markdown nie jest obsługiwane w tytułach. |
url |
Wymagane. Adres URL cytowanego zasobu (musi być prawidłowym adresem URL http:// lub https://, np. „https://developers.google.com/workspace/preview”). |
snippet |
Opcjonalnie: krótki fragment lub wycinek bezpośrednio ze źródła; Wyświetlana na karcie informacyjnej lub w stopce. Tylko zwykły tekst. Maksymalna długość to 1000 znaków. |
imageUrl |
Opcjonalnie: URL miniatury podglądu obrazu (musi używać adresu URL https://). |
footer |
Opcjonalnie: Dodatkowy tekst informacji o pochodzeniu danych wyświetlany w stopce karty (np. nazwa domeny „developers.google.com” lub nazwa autora/organizacji). |
NullValue
Reprezentuje obiekt JSON null.
NullValue to wartownik, który używa typu wyliczeniowego z tylko jedną wartością do reprezentowania wartości null dla unii typu Value.
Pole typu NullValue z dowolną wartością inną niż 0 jest uznawane za nieprawidłowe. Większość serializatorów ProtoJSON będzie emitować Value z null_value ustawionym jako JSON null niezależnie od wartości liczby całkowitej, więc będzie to wartość 0 w obie strony.
| Wartości w polu enum | |
|---|---|
NULL_VALUE |
Wartość null. |
Schemat wyjściowy
Odpowiedź na wysłanie wiadomości do rozmowy w Google Chat.
SendMessageResponse
| Zapis JSON |
|---|
{
"message": {
object ( |
| Pola | |
|---|---|
message |
Wiadomość, która została wysłana. |
ChatMessage
| Zapis JSON |
|---|
{ "messageId": string, "threadId": string, "plaintextBody": string, "sender": { object ( |
| Pola | |
|---|---|
messageId |
Nazwa zasobu wiadomości. Format: spaces/{space}/messages/{message} |
threadId |
Wątek, do którego należy ta wiadomość. Jeśli wiadomość nie jest częścią wątku, to pole będzie puste. Format: spaces/{space}/threads/{thread} |
plaintextBody |
Treść wiadomości w formacie Markdown. |
sender |
Nadawca wiadomości. |
createTime |
Tylko dane wyjściowe. Sygnatura czasowa utworzenia wiadomości. Format: sygnatura czasowa ISO 8601. |
threadedReply |
Czy wiadomość jest odpowiedzią w wątku. |
attachments[] |
załączniki dołączone do wiadomości; |
reactionSummaries[] |
Podsumowanie reakcji emotikonami zawarte w wiadomości. |
quotedMessageMetadata |
Tylko dane wyjściowe. Informacje o oryginalnej wiadomości, która jest cytowana lub przekazywana w tej wiadomości. Uwaga: to pole jest w trakcie opracowywania i może nie być jeszcze dostępne we wszystkich środowiskach. |
Użytkownik
| Zapis JSON |
|---|
{
"userId": string,
"displayName": string,
"email": string,
"userType": enum ( |
| Pola | |
|---|---|
userId |
Nazwa zasobu użytkownika Google Chat. Format: users/{user}. |
displayName |
Wyświetlana nazwa użytkownika Google Chat. |
email |
Adres e-mail użytkownika. To pole jest wypełniane tylko wtedy, gdy typ użytkownika to HUMAN. |
userType |
Typ użytkownika. |
ChatAttachmentMetadata
| Zapis JSON |
|---|
{
"attachmentId": string,
"filename": string,
"mimeType": string,
"source": enum ( |
| Pola | |
|---|---|
attachmentId |
Nazwa zasobu załącznika. Format: spaces/{space}/messages/{message}/attachments/{attachment}. |
filename |
Nazwa załącznika. |
mimeType |
Typ treści (typ MIME). |
source |
Źródło załącznika. |
driveFileId |
Tylko dane wyjściowe. Identyfikator pliku na Dysku Google. Wypełniane tylko wtedy, gdy źródłem jest DRIVE_FILE. Używaj z MCP Dysku Google. |
ReactionSummary
| Zapis JSON |
|---|
{ "emoji": string, "count": integer } |
| Pola | |
|---|---|
emoji |
Ciąg znaków unicode emotikona lub nazwa niestandardowego emotikona. |
count |
Łączna liczba reakcji z użyciem powiązanego emotikona. |
QuotedMessageMetadata
| Zapis JSON |
|---|
{ "messageId": string, "lastUpdateTime": string, "quoteType": enum ( |
| Pola | |
|---|---|
messageId |
Tylko dane wyjściowe. Nazwa zasobu oryginalnej wiadomości, która jest cytowana lub przekazywana dalej. Format: spaces/{space}/messages/{message} |
lastUpdateTime |
Tylko dane wyjściowe. Sygnatura czasowa określająca, kiedy oryginalna wiadomość została utworzona lub ostatnio zaktualizowana przed jej zacytowaniem lub przekazaniem dalej. Format: sygnatura czasowa ISO 8601. |
quoteType |
Tylko dane wyjściowe. Typ cytatu. |
plaintextBody |
Tylko dane wyjściowe. Zrzut treści oryginalnej wiadomości w momencie cytowania lub przekazywania dalej. Sformatowane za pomocą Markdown w przypadku |
sender |
Tylko dane wyjściowe. Wyświetlana nazwa autora oryginalnej wiadomości. |
attachments[] |
Tylko dane wyjściowe. załączniki, które były częścią oryginalnej wiadomości; Wartość podawana tylko w przypadku typu wyceny |
forwardedMetadata |
Tylko dane wyjściowe. Metadane dotyczące rozmowy źródłowej przekazanej wiadomości. Wartość podawana tylko w przypadku typu wyceny |
ForwardedMetadata
| Zapis JSON |
|---|
{ "conversationId": string, "conversationDisplayName": string } |
| Pola | |
|---|---|
conversationId |
Tylko dane wyjściowe. Nazwa zasobu rozmowy źródłowej. Format: spaces/{space} |
conversationDisplayName |
Tylko dane wyjściowe. Wyświetlana nazwa rozmowy źródłowej w momencie przekazania wiadomości. W przypadku nazwanych pokoi jest to nazwa pokoju. W przypadku czatów indywidualnych jest to nazwa drugiego uczestnika. W przypadku czatów grupowych bez nazwy jest to nazwa wygenerowana na podstawie nazw użytkowników. |
UserType
Typ użytkownika Google Chat.
| Wartości w polu enum | |
|---|---|
USER_TYPE_UNSPECIFIED |
Nie określono. |
HUMAN |
Użytkownik. |
APP |
Użytkownik aplikacji. |
Źródło
Źródło załącznika.
| Wartości w polu enum | |
|---|---|
SOURCE_UNSPECIFIED |
Zarezerwowane. |
DRIVE_FILE |
Plik jest plikiem na Dysku Google. |
UPLOADED_CONTENT |
Plik zostanie przesłany do Google Chat. |
QuoteType
Typ cytatu wskazujący, czy wiadomość jest odpowiedzią z cytatem czy przekazaną wiadomością.
| Wartości w polu enum | |
|---|---|
QUOTE_TYPE_UNSPECIFIED |
Zarezerwowane. Niezdefiniowany typ cytatu. |
REPLY |
Wiadomość jest odpowiedzią z cytatem na oryginalną wiadomość w tym samym wątku. |
FORWARD |
Wiadomość została przekazana z oryginalnej wiadomości w innej rozmowie lub z innego wątku w tej samej rozmowie. |
Adnotacje dotyczące narzędzi
Adnotacje narzędzi są wysyłane do klientów MCP, aby opisać podstawowe ryzyko związane z danym narzędziem. Większość klientów traktuje te wskazówki jako niezaufane, ale można ich użyć do określenia, kiedy wysłać użytkownikowi prośbę o potwierdzenie.
Oprócz ciągu tytułu zdefiniowane są te wskazówki logiczne:
readOnlyHint: jeśli ma wartość „true”, narzędzie nie modyfikuje swojego środowiska. Wartość domyślna: false.destructiveHint: jeśli ma wartość „true”, narzędzie może wykonywać działania destrukcyjne. Jeśli ma wartość false, narzędzie może wykonywać tylko działania dodawania. Wartość domyślna: true.idempotentHint: jeśli ma wartość „true”, wielokrotne wywoływanie narzędzia z tymi samymi argumentami nie będzie miało dodatkowego wpływu na jego środowisko. Wartość domyślna: false.openWorldHint: jeśli ma wartość true, narzędzie może wchodzić w interakcje z „otwartym światem” podmiotów zewnętrznych. Jeśli ma wartość false, narzędzie może wchodzić w interakcje tylko z elementami wewnętrznymi. Na przykład narzędzie do wyszukiwania w internecie jest narzędziem typu Otwarty świat, a narzędzie do zapamiętywania – nie.
Wskazówka dotycząca destrukcyjności: ❌ | Wskazówka dotycząca idempotencji: ❌ | Wskazówka dotycząca tylko do odczytu: ❌ | Wskazówka dotycząca otwartego świata: ✅
Zakresy autoryzacji
Wymaga jednego z tych zakresów OAuth:
https://www.googleapis.com/auth/chat.messageshttps://www.googleapis.com/auth/chat.messages.create