MCP Tools Reference: chatmcp.googleapis.com

Araç: send_message

Markdown biçimlendirmesiyle bir görüşmeye Google Chat sohbet mesajı gönderir.

Bu araç, giriş olarak bir görüşme kimliği, isteğe bağlı bir ileti dizisi kimliği ve bir mesaj metni kullanır.

Görüşme kimlikleri, search_conversations aracı kullanılarak bulunabilir.

Oluşturulan mesajı döndürür.

Aşağıdaki kod örneğinde, send_message MCP aracını çağırmak için curl öğesinin nasıl kullanılacağı gösterilmektedir.

Curl İsteği
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
}'

Giriş şeması

SendMessageRequest

JSON gösterimi
{
  "conversationId": string,
  "threadId": string,
  "messageText": string,
  "cards": [
    {
      object
    }
  ],
  "inlineCitations": [
    {
      object (Citation)
    }
  ],
  "footerCitedSources": [
    {
      object (CitedSource)
    }
  ]
}
Alanlar
conversationId

string

Zorunlu. Mesajın gönderileceği görüşmenin kimliği (ör. "spaces/AAAA...").

threadId

string

İsteğe bağlıdır. Mesajın gönderileceği ileti dizisinin kimliği (ör. "spaces/AAAA.../threads/BBBB..."). Ayarlanmazsa mesaj yeni bir ileti dizisine gönderilir.

messageText

string

Zorunlu. Mesajın ana içeriği. Biçimlendirme, standart Markdown kullanılarak eklenebilir (tabloların desteklenmediğini unutmayın). Aşağıdaki biçimlendirme desteklenir:

  • Kalın: **text**
  • İtalik: *text* veya _text_
  • Üstü çizili: ~~text~~
  • Sabit boşluklu: text
  • Sabit boşluklu blok:
```
line 1
line 2
```
  • Madde işaretli liste:
* item 1
* item 2
  • Sıralı liste:
1. item 1
2. item 2
  • Blok alıntı: > quoted text
  • Köprü: [label](url)
  • Kullanıcıdan bahsetme: data-email="user@example.com" veya data-user="users/USER_ID" özellikleriyle kendi kendini kapatan bir HTML etiketi chat-user kullanın. Biliniyorsa USER_ID ile data-user özelliğini tercih edin, aksi takdirde kullanıcı e-postasıyla data-email özelliğini kullanın. data-user özelliğini kullanıyorsanız diğer araç dönüş değerlerinde görülen users/ önekini eklediğinizden emin olun. Not: Mesaj başına en fazla 10 bahsetmeye izin verilir. Tüm kullanıcılardan bahsetmek (ör. @all veya users/all içeren bir HTML etiketi kullanmak) kesinlikle yasaktır.
  • Özel emoji: data-custom-emoji="customEmojis/abc" veya data-emoji-name=":xyz:" özellikleriyle kendi kendini kapatan bir HTML etiketi chat-emoji kullanın.
  • Alıntı: Alıntılanan metni, alıntı kimliğiyle eşleşen data-id özelliğine sahip bir HTML etiketi chat-citation ile sarmalayın. Bir chat-citation etiketinde herhangi bir Citation.id ile eşleşmeyen bir data-id varsa etiket yoksayılır ve sarmalanmış metin, düz metin olarak oluşturulur. Not: Mesaj başına en fazla 20 satır içi alıntıya izin verilir.
cards[]

object (Struct format)

İsteğe bağlıdır. İletiye eklenen kartlar. Kart başına maksimum boyut 32 KB'tır. Her kart, Google Chat kart biçimini (Google Workspace UIKit Card/Cards v2) izleyen bir JSON yapısı olarak temsil edilir. Mesajlara kart eklemek için Chat uygulamasının alanın üyesi olması gerekir. Kartlardaki resimler desteklenmez.

Kart tanımlama:

  • Her karttaki üst düzey name dize alanı, kartın tanımlayıcısı olarak kullanılır.
  • Bir mesaja birden fazla kart eklenmişse her kartın benzersiz ve boş olmayan bir name belirtmesi ZORUNLUDUR.
inlineCitations[]

object (Citation)

İsteğe bağlıdır. message_text içinde chat-citation etiketleri aracılığıyla referans verilen satır içi alıntılar. Mesaj başına en fazla 20 satır içi alıntıya izin verilir. Referans verilmeyen satır içi alıntılar (message_text içinde eşleşen bir chat-citation etiketi olmayanlar) yoksayılır ve doğrulama hatasına neden olmaz.

footerCitedSources[]

object (CitedSource)

İsteğe bağlıdır. Mesajın alt kısmında (altbilgi) referans kartları olarak gösterilen üst düzey alıntı kaynakları. Bir mesajdaki tüm satır içi alıntılar ve altbilgi kaynakları genelinde toplamda en fazla 50 alıntılanan kaynağa izin verilir.

Struct

JSON gösterimi
{
  "fields": {
    string: value,
    ...
  }
}
Alanlar
fields

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

Dinamik olarak yazılan değerlerin sırasız eşlemesi.

"key": value çiftlerinin listesini içeren bir nesne. Örnek: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

JSON gösterimi
{
  "key": string,
  "value": value
}
Alanlar
key

string

value

value (Value format)

Değer

JSON gösterimi
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
Alanlar
kind birleşik alanı. Değer türü. kind aşağıdakilerden yalnızca biri olabilir:
nullValue

null

Bir JSON null değerini temsil eder.

numberValue

number

JSON sayısını temsil eder. JSON'da desteklenmediği için NaN, Infinity veya -Infinity olmamalıdır. JSON biçimi genellikle sayı türünde büyük Int64 değerlerini desteklemediğinden bu değerler de temsil edilemez.

stringValue

string

Bir JSON dizesini temsil eder.

boolValue

boolean

JSON boole değerini (JSON'da true veya false değişmezi) temsil eder.

structValue

object (Struct format)

Bir JSON nesnesini temsil eder.

listValue

array (ListValue format)

JSON dizisini temsil eder.

ListValue

JSON gösterimi
{
  "values": [
    value
  ]
}
Alanlar
values[]

value (Value format)

Dinamik olarak yazılan değerlerin yinelenen alanı.

Alıntı

JSON gösterimi
{
  "id": string,
  "citedSources": [
    {
      object (CitedSource)
    }
  ]
}
Alanlar
id

string

Zorunlu. message_text içinde chat-citation etiketindeki data-id özelliğiyle eşleşen benzersiz tanımlayıcı (ör. alıntılanan metni chat-citation ve data-id="ID" özelliğiyle sarmalama). Yalnızca ASCII harfleri, rakamlar, alt çizgiler veya kısa çizgilerden (1-63 karakter) oluşmalıdır. Mesajdaki tüm alıntılar arasında benzersiz olmalıdır.

citedSources[]

object (CitedSource)

Zorunlu. Bu alıntı bilgi kutucuğuna eklenmiş bir veya daha fazla kaynak. Bir mesajdaki tüm satır içi alıntılar ve altbilgi kaynakları genelinde toplamda en fazla 50 alıntılanan kaynağa izin verilir.

CitedSource

JSON gösterimi
{
  "title": string,
  "url": string,
  "snippet": string,
  "imageUrl": string,
  "footer": string
}
Alanlar
title

string

Zorunlu. Kaynağın düz metin başlığı (ör. "Google Workspace Geliştirici Önizleme Programı"). Başlıklarda Markdown biçimlendirmesi desteklenmez.

url

string

Zorunlu. Alıntılanan kaynağın URL'si (geçerli bir http:// veya https:// URL'si olmalıdır, örneğin, "https://developers.google.com/workspace/preview").

snippet

string

İsteğe bağlıdır. Doğrudan kaynaktan alınan kısa bir alıntı veya snippet. Fareyle üzerine gelindiğinde görünen bilgi kutucuğunda veya altbilgide gösterilir. Yalnızca düz metin. Maksimum uzunluk 1.000 karakterdir.

imageUrl

string

İsteğe bağlıdır. Resim önizleme küçük resminin URL'si (https:// URL'si kullanılmalıdır).

footer

string

İsteğe bağlıdır. Kart altbilgisinde gösterilen ek atıf metni (ör. "developers.google.com" alan adı veya yazar/kuruluş adı).

NullValue

Bir JSON null değerini temsil eder.

NullValue, Value tür birleşimi için boş değeri temsil etmek üzere yalnızca bir değere sahip bir enum kullanan bir sentineldir.

0 dışında bir değere sahip NullValue türündeki alanlar geçersiz sayılır. Çoğu ProtoJSON serileştiricisi, tam sayı değerinden bağımsız olarak JSON null olarak ayarlanmış bir null_value ile Value yayınlar ve bu nedenle 0 değerine gidiş dönüş yapar.

Sıralamalar
NULL_VALUE Boş değer.

Çıkış şeması

Google Chat görüşmesine mesaj gönderme yanıtı.

SendMessageResponse

JSON gösterimi
{
  "message": {
    object (ChatMessage)
  }
}
Alanlar
message

object (ChatMessage)

Gönderilen mesaj.

ChatMessage

JSON gösterimi
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ],
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  }
}
Alanlar
messageId

string

Mesajın kaynak adı. Biçim: spaces/{space}/messages/{message}

threadId

string

Bu iletinin ait olduğu ileti dizisi. İleti ileti dizisi oluşturulmamışsa bu alan boş olur. Biçim: spaces/{space}/threads/{thread}

plaintextBody

string

Markdown biçimlendirmesi kullanılarak mesajın metin gövdesi.

sender

object (User)

Mesajı gönderen kişi.

createTime

string

Yalnızca çıkış. Mesajın oluşturulduğu zaman damgası. Biçim: ISO 8601 zaman damgası.

threadedReply

boolean

Mesajın bir mesaj dizisi yanıtı olup olmadığı.

attachments[]

object (ChatAttachmentMetadata)

İletiye eklenen dosyalar.

reactionSummaries[]

object (ReactionSummary)

Mesaja eklenen emoji tepkilerin özeti.

quotedMessageMetadata

object (QuotedMessageMetadata)

Yalnızca çıkış. Bu iletide alıntılanan veya yönlendirilen orijinal iletiyle ilgili bilgiler. Not: Bu alan geliştirme aşamasındadır ve henüz tüm ortamlarda kullanılamayabilir.

Kullanıcı

JSON gösterimi
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
Alanlar
userId

string

Chat kullanıcısının kaynak adı. Biçim: users/{user}.

displayName

string

Chat kullanıcısının görünen adı.

email

string

Kullanıcının e-posta adresi. Bu alan yalnızca kullanıcı türü HUMAN olduğunda doldurulur.

userType

enum (UserType)

Kullanıcının türü.

ChatAttachmentMetadata

JSON gösterimi
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source),
  "driveFileId": string
}
Alanlar
attachmentId

string

Ekin kaynak adı. Biçim: spaces/{alan}/messages/{mesaj}/attachments/{ek}.

filename

string

Ekin adı.

mimeType

string

İçerik türü (MIME türü).

source

enum (Source)

Ekin kaynağı.

driveFileId

string

Yalnızca çıkış. Google Drive dosyasının kimliği. Yalnızca kaynak DRIVE_FILE olduğunda doldurulur. Google Drive MCP ile kullanın.

ReactionSummary

JSON gösterimi
{
  "emoji": string,
  "count": integer
}
Alanlar
emoji

string

Emoji unicode dizesi veya özel emoji adı.

count

integer

İlişkili emoji kullanılarak verilen tepkilerin toplam sayısı.

QuotedMessageMetadata

JSON gösterimi
{
  "messageId": string,
  "lastUpdateTime": string,
  "quoteType": enum (QuoteType),
  "plaintextBody": string,
  "sender": string,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "forwardedMetadata": {
    object (ForwardedMetadata)
  }
}
Alanlar
messageId

string

Yalnızca çıkış. Alıntılanan veya yönlendirilen orijinal mesajın kaynak adı. Biçim: spaces/{space}/messages/{message}

lastUpdateTime

string

Yalnızca çıkış. Orijinal mesajın oluşturulduğu veya alıntılanmadan ya da yönlendirilmeden önce en son güncellendiği zaman damgası. Biçim: ISO 8601 zaman damgası.

quoteType

enum (QuoteType)

Yalnızca çıkış. Teklifin türü.

plaintextBody

string

Yalnızca çıkış. Alıntı yapma veya yönlendirme sırasında orijinal iletinin metin gövdesinin anlık görüntüsü. FORWARD için Markdown, REPLY için düz metin kullanılarak biçimlendirilir.

sender

string

Yalnızca çıkış. Orijinal mesajın yazarının görünen adı.

attachments[]

object (ChatAttachmentMetadata)

Yalnızca çıkış. Orijinal iletinin parçası olan ekler. Yalnızca FORWARD teklif türü için doldurulur.

forwardedMetadata

object (ForwardedMetadata)

Yalnızca çıkış. Yönlendirilen mesajın kaynak görüşmesiyle ilgili meta veriler. Yalnızca FORWARD teklif türü için doldurulur.

ForwardedMetadata

JSON gösterimi
{
  "conversationId": string,
  "conversationDisplayName": string
}
Alanlar
conversationId

string

Yalnızca çıkış. Kaynak görüşmenin kaynak adı. Biçim: spaces/{space}

conversationDisplayName

string

Yalnızca çıkış. Mesajın yönlendirildiği sırada kaynak görüşmenin görünen adı. Adlandırılmış alanlar için bu, alan adıdır. Bire bir doğrudan mesajlarda bu, diğer katılımcının adıdır. Adsız grup sohbetleri için bu, üyelerin adlarına göre oluşturulan bir addır.

UserType

Google Chat kullanıcısının türü.

Sıralamalar
USER_TYPE_UNSPECIFIED Belirtilmedi.
HUMAN Gerçek kişi kullanıcı.
APP Uygulama kullanıcısı.

Kaynak

Ekin kaynağı.

Sıralamalar
SOURCE_UNSPECIFIED Rezervasyon yapıldı.
DRIVE_FILE Dosya bir Google Drive dosyasıdır.
UPLOADED_CONTENT Dosya, Chat'e yüklenir.

QuoteType

Mesajın alıntı yanıt mı yoksa yönlendirilmiş mesaj mı olduğunu gösteren alıntı türü.

Sıralamalar
QUOTE_TYPE_UNSPECIFIED Rezervasyon yapıldı. Tanımsız teklif türü.
REPLY Mesaj, aynı ileti dizisindeki orijinal bir mesaja verilen alıntılı yanıttır.
FORWARD Mesaj, farklı bir görüşmedeki orijinal bir mesajdan veya aynı görüşmedeki farklı bir ileti dizisinden yönlendirilmiştir.

Araç Notları

Araç ek açıklamaları, belirli bir aracın temel riskini açıklamak için MCP istemcilerine gönderilir. Çoğu istemci bu ipuçlarını güvenilir olarak değerlendirmez ancak kullanıcıya ne zaman onay istemi gönderileceğine karar vermek için kullanılabilir.

Başlık dizesiyle birlikte aşağıdaki boole ipuçları şu şekilde tanımlanır:

  • readOnlyHint: Doğru ise araç, ortamını değiştirmez. Varsayılan: false.
  • destructiveHint: Doğru ise araç, yıkıcı işlemler gerçekleştirebilir. Yanlış ise araç yalnızca ekleme işlemleri gerçekleştirebilir. Varsayılan: true.
  • idempotentHint: Doğru ise aracın aynı bağımsız değişkenlerle tekrar tekrar çağrılması, ortamı üzerinde ek bir etki yaratmaz. Varsayılan: false.
  • openWorldHint: Doğru ise araç, harici varlıkların "açık dünyası" ile etkileşim kurabilir. Yanlış ise araç yalnızca dahili varlıklarla etkileşim kurabilir. Örneğin, web arama aracı açık dünya olurken bellek aracı açık dünya olmaz.

Yıkıcı İpucu: ❌ | Bağımsız İpucu: ❌ | Salt Okunur İpucu: ❌ | Açık Dünya İpucu: ✅

Yetkilendirme Kapsamları

Aşağıdaki OAuth kapsamlarından birini gerektirir:

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