MCP Tools Reference: chatmcp.googleapis.com

टूल: list_messages

यह फ़ंक्शन, Markdown फ़ॉर्मैट में, Google Chat की किसी बातचीत (स्पेस, डायरेक्ट मैसेज (डीएम) या ग्रुप डीएम) से मैसेज वापस लाता है. इसकी मदद से, थ्रेड, समयसीमा, और मैसेज की संख्या के हिसाब से फ़िल्टर किया जा सकता है. इसके अलावा, ज़्यादा जानकारी पाने के लिए, मैसेज का अगला पेज भी वापस पाया जा सकता है. निजी मैसेज (ऐसे मैसेज जो सिर्फ़ एक उपयोगकर्ता को दिखते हैं) को फ़िल्टर कर दिया जाता है.

यहां दिए गए कोड सैंपल में, list_messages MCP टूल को कॉल करने के लिए 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": "list_messages",
    "arguments": {
      // provide these details according to the tool MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

इनपुट स्कीमा

ListChatMessagesRequest

JSON के काेड में दिखाना
{
  "conversationId": string,
  "threadId": string,
  "pageSize": integer,
  "pageToken": string,
  "startTime": string,
  "endTime": string
}
फ़ील्ड
conversationId

string

ज़रूरी है. बातचीत का आईडी. कोई बातचीत, स्पेस, डायरेक्ट मैसेज (डीएम) या ग्रुप डीएम/चैट हो सकती है. फ़ॉर्मैट: spaces/{space}

threadId

string

ज़रूरी नहीं. बातचीत में मौजूद किसी थ्रेड का आईडी. अगर यह पैरामीटर दिया जाता है, तो सिर्फ़ इस थ्रेड के मैसेज दिखाए जाएंगे. अगर इसे शामिल नहीं किया जाता है, तो बातचीत में मौजूद सभी थ्रेड के मैसेज को शामिल किया जाता है. फ़ॉर्मैट: spaces/{space}/threads/{thread}

pageSize

integer

ज़रूरी नहीं. ज्यादा से ज्यादा कितने मैसेज वापस लाने हैं. ऐसा हो सकता है कि सेवा इस वैल्यू से कम नतीजे दिखाए. अगर कोई वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट रूप से इसकी वैल्यू 20 होती है. ज़्यादा से ज़्यादा वैल्यू 50 हो सकती है. अगर 50 से ज़्यादा वैल्यू का इस्तेमाल किया जाता है, तो उसे अपने-आप 50 में बदल दिया जाता है.

pageToken

string

ज़रूरी नहीं. यह एक पेज टोकन है. यह list_messages को किए गए पिछले कॉल से मिला था. अगला पेज पाने के लिए, यह जानकारी दें.

startTime

string

ज़रूरी नहीं. मैसेज फ़िल्टर करने के लिए ISO 8601 टाइमस्टैंप. इस समय के बाद बनाए गए मैसेज ही वापस लाए जाएंगे.

endTime

string

ज़रूरी नहीं. मैसेज फ़िल्टर करने के लिए ISO 8601 टाइमस्टैंप. सिर्फ़ इस समय से पहले बनाए गए मैसेज वापस लाए जाएंगे.

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

जवाब में, अनुरोध की गई बातचीत के मैसेज की सूची शामिल होती है.

ListChatMessagesResponse

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

object (ChatMessage)

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

nextPageToken

string

एक टोकन, जिसे बाद के ListMessagesRequest में page_token के तौर पर भेजा जा सकता है, ताकि मैसेज का अगला पेज वापस पाया जा सके. अगर यह फ़ील्ड खाली है, तो इसका मतलब है कि अब कोई और पेज नहीं है.

ChatMessage

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

string

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

threadId

string

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

plaintextBody

string

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

sender

object (User)

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

createTime

string

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

threadedReply

boolean

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

attachments[]

object (ChatAttachmentMetadata)

मैसेज में शामिल किए गए अटैचमेंट.

reactionSummaries[]

object (ReactionSummary)

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

उपयोगकर्ता

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)
}
फ़ील्ड
attachmentId

string

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

filename

string

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

mimeType

string

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

source

enum (Source)

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

ReactionSummary

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

string

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

count

integer

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

UserType

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

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

स्रोत

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

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

टूल एनोटेशन

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

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

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

डेटा में बदलाव करने से जुड़ी जानकारी: ❌ | एक ही अनुरोध को कई बार भेजने पर भी नतीजे में कोई बदलाव न होने से जुड़ी जानकारी: ✅ | सिर्फ़ पढ़ने से जुड़ी जानकारी: ✅ | ओपन वर्ल्ड से जुड़ी जानकारी: ❌

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

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

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