MCP Tools Reference: chatmcp.googleapis.com

टूल: send_message

मार्कडाउन फ़ॉर्मैटिंग का इस्तेमाल करके, Google Chat पर किसी बातचीत में चैट मैसेज भेजता है.

यह टूल, इनपुट के तौर पर बातचीत का आईडी, थ्रेड आईडी (ज़रूरी नहीं), और मैसेज का टेक्स्ट इस्तेमाल करता है.

बातचीत के आईडी, search_conversations टूल का इस्तेमाल करके ढूंढे जा सकते हैं.

यह बनाए गए मैसेज को दिखाता है.

यहां दिए गए कोड सैंपल में, curl का इस्तेमाल करके send_message एमसीपी टूल को कॉल करने का तरीका बताया गया है.

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
}'

इनपुट स्कीमा

SendMessageRequest

JSON के काेड में दिखाना
{
  "conversationId": string,
  "threadId": string,
  "messageText": string,
  "cards": [
    {
      object
    }
  ],
  "inlineCitations": [
    {
      object (Citation)
    }
  ],
  "footerCitedSources": [
    {
      object (CitedSource)
    }
  ]
}
फ़ील्ड
conversationId

string

ज़रूरी है. उस बातचीत का आईडी (जैसे, 'spaces/AAAA...') जिसमें मैसेज भेजना है.

threadId

string

ज़रूरी नहीं. उस थ्रेड का आईडी (जैसे, 'spaces/AAAA.../threads/BBBB...') जिसमें मैसेज भेजना है. अगर यह सेट नहीं किया जाता है, तो मैसेज को एक नए थ्रेड में भेजा जाएगा.

messageText

string

ज़रूरी है. मैसेज का मुख्य कॉन्टेंट. स्टैंडर्ड मार्कडाउन का इस्तेमाल करके, फ़ॉर्मैटिंग जोड़ी जा सकती है. ध्यान दें कि टेबल इस्तेमाल नहीं की जा सकतीं. इस फ़ॉर्मैट का इस्तेमाल किया जा सकता है:

  • बोल्ड: **text**
  • इटैलिक: *text* या _text_
  • स्ट्राइकथ्रू: ~~text~~
  • मोनोस्पेस: text
  • मोनोस्पेस ब्लॉक:
```
line 1
line 2
```
  • बुलेट वाली सूची:
* item 1
* item 2
  • क्रम वाली सूची:
1. item 1
2. item 2
  • ब्लॉक कोट: > quoted text
  • हाइपरलिंक: [label](url)
  • उपयोगकर्ता का नाम टैग करना: data-email="user@example.com" या data-user="users/USER_ID" एट्रिब्यूट के साथ, खुद बंद होने वाले एचटीएमएल टैग chat-user का इस्तेमाल करें. अगर आपको उपयोगकर्ता का आईडी पता है, तो USER_ID के साथ data-user एट्रिब्यूट का इस्तेमाल करें. अगर आपको उपयोगकर्ता का आईडी नहीं पता है, तो उपयोगकर्ता के ईमेल पते के साथ data-email एट्रिब्यूट का इस्तेमाल करें. अगर data-user एट्रिब्यूट का इस्तेमाल किया जाता है, तो पक्का करें कि आपने users/ प्रीफ़िक्स को शामिल किया हो. यह प्रीफ़िक्स, अन्य टूल से मिलने वाली वैल्यू में दिखता है. ध्यान दें: हर मैसेज में ज़्यादा से ज़्यादा 10 लोगों को टैग किया जा सकता है. सभी उपयोगकर्ताओं को टैग करने की अनुमति नहीं है. उदाहरण के लिए, @all या users/all वाले एचटीएमएल टैग का इस्तेमाल करके.
  • कस्टम इमोजी: data-custom-emoji="customEmojis/abc" या data-emoji-name=":xyz:" एट्रिब्यूट के साथ, खुद बंद होने वाले एचटीएमएल टैग chat-emoji का इस्तेमाल करें.
  • उद्धरण: उद्धरण वाले टेक्स्ट को एचटीएमएल टैग chat-citation में रैप करें. साथ ही, data-id एट्रिब्यूट की वैल्यू, उद्धरण आईडी से मैच होनी चाहिए. अगर किसी chat-citation टैग में ऐसी data-id है जो किसी भी Citation.id से मैच नहीं होती, तो टैग को अनदेखा कर दिया जाता है. साथ ही, रैप किए गए टेक्स्ट को सामान्य टेक्स्ट के तौर पर रेंडर किया जाता है. ध्यान दें: हर मैसेज में ज़्यादा से ज़्यादा 20 इनलाइन उद्धरण जोड़े जा सकते हैं.
cards[]

object (Struct format)

ज़रूरी नहीं. मैसेज में अटैच किए गए कार्ड. हर कार्ड का साइज़ ज़्यादा से ज़्यादा 32 केबी होना चाहिए. हर कार्ड को Google Chat कार्ड फ़ॉर्मैट (Google Workspace UIKit कार्ड / कार्ड v2) के मुताबिक, JSON स्ट्रक्चर के तौर पर दिखाया जाता है. किसी मैसेज में कार्ड अटैच करने के लिए, चैट ऐप्लिकेशन को स्पेस का सदस्य होना चाहिए. कार्ड में इमेज इस्तेमाल नहीं की जा सकतीं.

कार्ड की पहचान:

  • हर कार्ड में टॉप-लेवल name स्ट्रिंग फ़ील्ड, उसके आइडेंटिफ़ायर के तौर पर काम करता है.
  • अगर किसी मैसेज में एक से ज़्यादा कार्ड अटैच किए गए हैं, तो हर कार्ड के लिए एक यूनीक और भरा हुआ name देना ज़रूरी है.
inlineCitations[]

object (Citation)

ज़रूरी नहीं. message_text में chat-citation टैग के ज़रिए रेफ़रंस के तौर पर दिए गए इनलाइन साइटेशन. हर मैसेज में ज़्यादा से ज़्यादा 20 इनलाइन उद्धरण जोड़े जा सकते हैं. ऐसे इनलाइन उद्धरण जिन्हें रेफ़र नहीं किया गया है (जिनमें message_text में मैच होने वाला chat-citation टैग नहीं है) उन्हें अनदेखा कर दिया जाता है. साथ ही, इनकी वजह से पुष्टि करने में कोई गड़बड़ी नहीं होती.

footerCitedSources[]

object (CitedSource)

ज़रूरी नहीं. मैसेज के सबसे नीचे (फ़ुटर) रेफ़रंस कार्ड के तौर पर दिखाए गए टॉप-लेवल के सोर्स. किसी मैसेज में, इनलाइन उद्धरणों और फ़ुटर सोर्स को मिलाकर, ज़्यादा से ज़्यादा 50 सोर्स उद्धृत किए जा सकते हैं.

स्ट्रक्ट

JSON के काेड में दिखाना
{
  "fields": {
    string: value,
    ...
  }
}
फ़ील्ड
fields

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

डाइनैमिक तौर पर टाइप की गई वैल्यू का बिना क्रम वाला मैप.

एक ऑब्जेक्ट, जिसमें "key": value जोड़ों की सूची शामिल हो. उदाहरण: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

FieldsEntry

JSON के काेड में दिखाना
{
  "key": string,
  "value": value
}
फ़ील्ड
key

string

value

value (Value format)

वैल्यू

JSON के काेड में दिखाना
{

  "nullValue": null,
  "numberValue": number,
  "stringValue": string,
  "boolValue": boolean,
  "structValue": {
    object
  },
  "listValue": array
}
फ़ील्ड
यूनियन फ़ील्ड kind. वैल्यू किस तरह की है. kind इनमें से सिर्फ़ एक हो सकता है:
nullValue

null

यह JSON null को दिखाता है.

numberValue

number

यह JSON नंबर को दिखाता है. यह NaN, Infinity या -Infinity नहीं होना चाहिए, क्योंकि ये JSON में काम नहीं करते. यह बड़ी Int64 वैल्यू को भी नहीं दिखा सकता, क्योंकि JSON फ़ॉर्मैट आम तौर पर उन्हें अपने नंबर टाइप में इस्तेमाल नहीं करता.

stringValue

string

यह JSON स्ट्रिंग को दिखाता है.

boolValue

boolean

यह JSON बूलियन (JSON में true या false लिटरल) को दिखाता है.

structValue

object (Struct format)

यह किसी JSON ऑब्जेक्ट को दिखाता है.

listValue

array (ListValue format)

यह JSON कलेक्शन को दिखाता है.

ListValue

JSON के काेड में दिखाना
{
  "values": [
    value
  ]
}
फ़ील्ड
values[]

value (Value format)

डाइनैमिक तौर पर टाइप की गई वैल्यू का दोहराया गया फ़ील्ड.

उद्धरण

JSON के काेड में दिखाना
{
  "id": string,
  "citedSources": [
    {
      object (CitedSource)
    }
  ]
}
फ़ील्ड
id

string

ज़रूरी है. message_text में chat-citation टैग में मौजूद data-id एट्रिब्यूट से मैच करने वाला यूनीक आइडेंटिफ़ायर. उदाहरण के लिए, कोट किए गए टेक्स्ट को chat-citation और एट्रिब्यूट data-id="ID" के साथ रैप करना. इसमें सिर्फ़ ASCII अक्षर, अंक, अंडरस्कोर या हाइफ़न (1 से 63 वर्ण) होने चाहिए. यह मैसेज में मौजूद सभी उद्धरणों में यूनीक होना चाहिए.

citedSources[]

object (CitedSource)

ज़रूरी है. इस उद्धरण के होवरकार्ड में एक या इससे ज़्यादा सोर्स अटैच किए गए हैं. किसी मैसेज में, इनलाइन उद्धरणों और फ़ुटर सोर्स को मिलाकर, ज़्यादा से ज़्यादा 50 सोर्स उद्धृत किए जा सकते हैं.

CitedSource

JSON के काेड में दिखाना
{
  "title": string,
  "url": string,
  "snippet": string,
  "imageUrl": string,
  "footer": string
}
फ़ील्ड
title

string

ज़रूरी है. सोर्स का सादे टेक्स्ट वाला टाइटल (उदाहरण के लिए, "Google Workspace डेवलपर के लिए झलक Program"). टाइटल में मार्कडाउन फ़ॉर्मैटिंग का इस्तेमाल नहीं किया जा सकता.

url

string

ज़रूरी है. उद्धृत किए गए संसाधन का यूआरएल.यह एक मान्य http:// या https:// यूआरएल होना चाहिए. जैसे, "https://developers.google.com/workspace/preview".

snippet

string

ज़रूरी नहीं. सीधे सोर्स से लिया गया छोटा अंश या स्निपेट. यह होवरकार्ड या फ़ुटर में दिखता है. सिर्फ़ सादा टेक्स्ट. ज़्यादा से ज़्यादा 1,000 वर्ण इस्तेमाल किए जा सकते हैं.

imageUrl

string

ज़रूरी नहीं. इमेज की झलक दिखाने वाले थंबनेल का यूआरएल. इसके लिए, https:// यूआरएल का इस्तेमाल करना ज़रूरी है.

footer

string

ज़रूरी नहीं. कार्ड के फ़ुटर में दिखने वाला अतिरिक्त एट्रिब्यूशन टेक्स्ट. जैसे, डोमेन नेम "developers.google.com" या लेखक/संगठन का नाम.

NullValue

यह JSON null को दिखाता है.

NullValue एक सेंटिनल है. यह सिर्फ़ एक वैल्यू वाले enum का इस्तेमाल करके, Value टाइप यूनियन के लिए शून्य वैल्यू दिखाता है.

NullValue टाइप के फ़ील्ड में 0 के अलावा कोई भी वैल्यू अमान्य मानी जाती है. ज़्यादातर ProtoJSON सीरियलाइज़र, पूर्णांक वैल्यू के बावजूद, JSON null के तौर पर सेट किए गए null_value के साथ Value को एमिट करेंगे. साथ ही, 0 वैल्यू पर वापस जाएंगे.

Enums
NULL_VALUE Null वैल्यू.

आउटपुट स्कीमा

Google Chat में किसी बातचीत में मैसेज भेजने पर मिलने वाला जवाब.

SendMessageResponse

JSON के काेड में दिखाना
{
  "message": {
    object (ChatMessage)
  }
}
फ़ील्ड
message

object (ChatMessage)

भेजा गया मैसेज.

ChatMessage

JSON के काेड में दिखाना
{
  "messageId": string,
  "threadId": string,
  "plaintextBody": string,
  "sender": {
    object (User)
  },
  "createTime": string,
  "threadedReply": boolean,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "reactionSummaries": [
    {
      object (ReactionSummary)
    }
  ],
  "quotedMessageMetadata": {
    object (QuotedMessageMetadata)
  }
}
फ़ील्ड
messageId

string

मैसेज के संसाधन का नाम. फ़ॉर्मैट: spaces/{space}/messages/{message}

threadId

string

यह मैसेज किस थ्रेड से जुड़ा है. अगर मैसेज अनथ्रेडेड है, तो यह खाली रहेगा. फ़ॉर्मैट: spaces/{space}/threads/{thread}

plaintextBody

string

Markdown फ़ॉर्मैटिंग का इस्तेमाल करके, मैसेज का मुख्य टेक्स्ट.

sender

object (User)

मैसेज भेजने वाला व्यक्ति.

createTime

string

सिर्फ़ आउटपुट के लिए. मैसेज बनाए जाने का टाइमस्टैंप. फ़ॉर्मैट: ISO 8601 टाइमस्टैंप.

threadedReply

boolean

क्या मैसेज, थ्रेड में दिया गया जवाब है.

attachments[]

object (ChatAttachmentMetadata)

मैसेज में अटैचमेंट शामिल हैं.

reactionSummaries[]

object (ReactionSummary)

मैसेज में, इमोजी से दी गई प्रतिक्रियाओं की खास जानकारी.

quotedMessageMetadata

object (QuotedMessageMetadata)

सिर्फ़ आउटपुट के लिए. इस मैसेज में कोट या फ़ॉरवर्ड किए गए ओरिजनल मैसेज की जानकारी. ध्यान दें: इस फ़ील्ड पर काम चल रहा है. इसलिए, हो सकता है कि यह अभी सभी एनवायरमेंट में मौजूद न हो.

उपयोगकर्ता

JSON के काेड में दिखाना
{
  "userId": string,
  "displayName": string,
  "email": string,
  "userType": enum (UserType)
}
फ़ील्ड
userId

string

Chat इस्तेमाल करने वाले व्यक्ति के संसाधन का नाम. फ़ॉर्मैट: users/{user}.

displayName

string

Chat इस्तेमाल करने वाले व्यक्ति का डिसप्ले नेम.

email

string

उपयोगकर्ता का ईमेल पता. यह फ़ील्ड सिर्फ़ तब भरा जाता है, जब उपयोगकर्ता टाइप HUMAN हो.

userType

enum (UserType)

उपयोगकर्ता का टाइप.

ChatAttachmentMetadata

JSON के काेड में दिखाना
{
  "attachmentId": string,
  "filename": string,
  "mimeType": string,
  "source": enum (Source),
  "driveFileId": string
}
फ़ील्ड
attachmentId

string

अटैचमेंट के संसाधन का नाम. फ़ॉर्मैट: spaces/{space}/messages/{message}/attachments/{attachment}.

filename

string

अटैचमेंट का नाम.

mimeType

string

कॉन्टेंट टाइप (एमआईएमई टाइप).

source

enum (Source)

अटैचमेंट का सोर्स.

driveFileId

string

सिर्फ़ आउटपुट के लिए. Google Drive फ़ाइल का आईडी. यह जानकारी सिर्फ़ तब अपने-आप भरी जाती है, जब सोर्स DRIVE_FILE हो. Google Drive एमसीपी के साथ इस्तेमाल करें.

ReactionSummary

JSON के काेड में दिखाना
{
  "emoji": string,
  "count": integer
}
फ़ील्ड
emoji

string

इमोजी की यूनिकोड स्ट्रिंग या पसंद के मुताबिक बनाए गए इमोजी का नाम.

count

integer

किसी इमोजी का इस्तेमाल करके दी गई प्रतिक्रियाओं की कुल संख्या.

QuotedMessageMetadata

JSON के काेड में दिखाना
{
  "messageId": string,
  "lastUpdateTime": string,
  "quoteType": enum (QuoteType),
  "plaintextBody": string,
  "sender": string,
  "attachments": [
    {
      object (ChatAttachmentMetadata)
    }
  ],
  "forwardedMetadata": {
    object (ForwardedMetadata)
  }
}
फ़ील्ड
messageId

string

सिर्फ़ आउटपुट के लिए. कोट या फ़ॉरवर्ड किए गए ओरिजनल मैसेज के संसाधन का नाम. फ़ॉर्मैट: spaces/{space}/messages/{message}

lastUpdateTime

string

सिर्फ़ आउटपुट के लिए. कोट या फ़ॉरवर्ड किए जाने से पहले, मूल मैसेज को बनाए जाने या पिछली बार अपडेट किए जाने का टाइमस्टैंप. फ़ॉर्मैट: ISO 8601 टाइमस्टैंप.

quoteType

enum (QuoteType)

सिर्फ़ आउटपुट के लिए. कोटेशन किस तरह का है.

plaintextBody

string

सिर्फ़ आउटपुट के लिए. कोट या फ़ॉरवर्ड करते समय, मूल मैसेज के टेक्स्ट का स्नैपशॉट. FORWARD के लिए Markdown का इस्तेमाल करके फ़ॉर्मैट किया गया और REPLY के लिए सादे टेक्स्ट का इस्तेमाल किया गया.

sender

string

सिर्फ़ आउटपुट के लिए. ओरिजनल मैसेज के लेखक का डिसप्ले नेम.

attachments[]

object (ChatAttachmentMetadata)

सिर्फ़ आउटपुट के लिए. मूल मैसेज में शामिल अटैचमेंट. यह सिर्फ़ FORWARD कोट टाइप के लिए भरा जाता है.

forwardedMetadata

object (ForwardedMetadata)

सिर्फ़ आउटपुट के लिए. फ़ॉरवर्ड किए गए मैसेज की सोर्स बातचीत का मेटाडेटा. यह सिर्फ़ FORWARD कोट टाइप के लिए भरा जाता है.

ForwardedMetadata

JSON के काेड में दिखाना
{
  "conversationId": string,
  "conversationDisplayName": string
}
फ़ील्ड
conversationId

string

सिर्फ़ आउटपुट के लिए. सोर्स बातचीत के संसाधन का नाम. फ़ॉर्मैट: spaces/{space}

conversationDisplayName

string

सिर्फ़ आउटपुट के लिए. मैसेज फ़ॉरवर्ड किए जाने के समय, सोर्स बातचीत का डिसप्ले नेम. नाम वाले स्पेस के लिए, यह स्पेस का नाम होता है. सीधी बातचीत के लिए, यह मीटिंग में हिस्सा लेने वाले दूसरे व्यक्ति का नाम होता है. बिना नाम वाली ग्रुप चैट के लिए, यह नाम सदस्यों के नामों के आधार पर जनरेट किया जाता है.

UserType

Google Chat इस्तेमाल करने वाले व्यक्ति का टाइप.

Enums
USER_TYPE_UNSPECIFIED नहीं बताया गया है
HUMAN कोई व्यक्ति.
APP ऐप्लिकेशन का उपयोगकर्ता.

स्रोत

अटैचमेंट का सोर्स.

Enums
SOURCE_UNSPECIFIED रिज़र्व किया गया.
DRIVE_FILE फ़ाइल, Google Drive में मौजूद हो.
UPLOADED_CONTENT फ़ाइल को Chat में अपलोड किया गया हो.

QuoteType

कोट का टाइप, जिससे पता चलता है कि मैसेज, कोट किया गया जवाब है या फ़ॉरवर्ड किया गया मैसेज.

Enums
QUOTE_TYPE_UNSPECIFIED रिज़र्व किया गया. कोटेशन का टाइप तय नहीं है.
REPLY मैसेज, उसी थ्रेड में मौजूद ओरिजनल मैसेज का कोट किया गया जवाब हो.
FORWARD मैसेज को किसी दूसरी बातचीत के ओरिजनल मैसेज से या उसी बातचीत के किसी दूसरे थ्रेड से फ़ॉरवर्ड किया गया हो.

टूल एनोटेशन

टूल के एनोटेशन, एमसीपी क्लाइंट को भेजे जाते हैं. इससे उन्हें किसी टूल से जुड़े बुनियादी जोखिम के बारे में जानकारी मिलती है. ज़्यादातर क्लाइंट इन हिंट को भरोसेमंद नहीं मानते. हालांकि, इनका इस्तेमाल यह तय करने के लिए किया जा सकता है कि उपयोगकर्ता को पुष्टि करने का प्रॉम्प्ट कब भेजा जाए.

टाइटल स्ट्रिंग के साथ-साथ, बूलियन हिंट के बारे में यहां बताया गया है:

  • readOnlyHint: अगर इसकी वैल्यू true है, तो टूल अपने एनवायरमेंट में बदलाव नहीं करता. डिफ़ॉल्ट: false.
  • destructiveHint: अगर इसकी वैल्यू true है, तो टूल नुकसान पहुंचाने वाली कार्रवाइयां कर सकता है. अगर इसकी वैल्यू false है, तो टूल सिर्फ़ जोड़ने वाली कार्रवाइयां कर सकता है. डिफ़ॉल्ट: true.
  • idempotentHint: अगर इसकी वैल्यू true है, तो एक ही आर्ग्युमेंट के साथ टूल को बार-बार कॉल करने से, उसके एनवायरमेंट पर कोई और असर नहीं पड़ेगा. डिफ़ॉल्ट: false.
  • openWorldHint: सही होने पर, टूल बाहरी इकाइयों की 'विशाल दुनिया' के साथ इंटरैक्ट कर सकता है. अगर यह वैल्यू false है, तो टूल सिर्फ़ इंटरनल इकाइयों के साथ इंटरैक्ट कर सकता है. उदाहरण के लिए, वेब सर्च टूल ओपन वर्ल्ड होगा, जबकि मेमोरी टूल ओपन वर्ल्ड नहीं होगा.

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

अनुमति पाने के लिंक

इनमें से किसी एक OAuth स्कोप की ज़रूरत हाेती है:

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