MCP Tools Reference: chatmcp.googleapis.com

टूल: search_conversations

यह टूल, Google Chat की बातचीत (नाम वाले स्पेस, डायरेक्ट मैसेज (डीएम) या ग्रुप चैट) को डिसप्ले नेम या बातचीत में शामिल लोगों के नाम के हिसाब से खोजता है, ताकि बातचीत के आईडी ढूंढे जा सकें.

यह टूल, बातचीत के मेटाडेटा को खोजता है, न कि मैसेज के कॉन्टेंट को. मैसेज के इतिहास में खोजने या कीवर्ड/भेजने वाले/टाइमस्टैंप के हिसाब से मैसेज ढूंढने के लिए, search_messages का इस्तेमाल करें.

अगर सिर्फ़ participants की जानकारी दी जाती है, तो यह टूल सीधी बातचीत (अगर एक व्यक्ति की जानकारी दी जाती है) या ग्रुप चैट (अगर एक से ज़्यादा लोगों की जानकारी दी जाती है) ढूंढता है. इनमें, कॉल करने वाले उपयोगकर्ता के साथ-साथ, वे लोग भी शामिल होते हैं जिनकी जानकारी दी गई है.

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

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

अगर participants और query, दोनों ही नहीं दिए गए हैं, तो यह टूल उन सभी बातचीत की सूची दिखाता है जिनमें कॉल करने वाला उपयोगकर्ता शामिल है.

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

यह बातचीत के ऑब्जेक्ट की सूची दिखाता है. इसमें बातचीत के आईडी (फ़ॉर्मैट: spaces/{space}), डिसप्ले नेम, और बातचीत के टाइप शामिल होते हैं.

अहम जानकारी: conversations की सूची खाली होने का मतलब यह नहीं है कि कोई और नतीजा नहीं है. अगर next_page_token मौजूद है, तो ज़्यादा पेज फ़ेच किए जा सकते हैं. अगर आपको खाली सूची मिलती है, लेकिन next_page_token मिलता है, तो उपयोगकर्ता से पूछें कि क्या आपको खोज जारी रखनी चाहिए.

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

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": "search_conversations",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

इनपुट स्कीमा

SearchConversationsRequest

JSON के काेड में दिखाना
{
  "spaceNameQuery": string,
  "pageSize": integer,
  "pageToken": string,
  "participants": [
    string
  ]
}
फ़ील्ड
spaceNameQuery

string

ज़रूरी नहीं. स्पेस के डिसप्ले नेम में खोजने के लिए टेक्स्ट (केस-इनसेंसिटिव सबस्ट्रिंग मैच).

pageSize

integer

ज़रूरी नहीं. ज़्यादा से ज़्यादा कितने स्पेस दिखाए जाएं. सेवा, इस वैल्यू से कम नतीजे दिखा सकती है. अगर यह तय नहीं किया गया है, तो ज़्यादा से ज़्यादा 20 स्पेस दिखाए जाएंगे. ज़्यादा से ज़्यादा वैल्यू 1,000 हो सकती है. 1,000 से ज़्यादा की वैल्यू को 1,000 में बदल दिया जाएगा.

pageToken

string

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

participants[]

string

ज़रूरी नहीं. कॉल करने वाले व्यक्ति को छोड़कर, बातचीत को फ़िल्टर करने के लिए, मीटिंग में हिस्सा लेने वाले लोगों के ईमेल पतों की सूची.

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

जवाब में, मिलती-जुलती बातचीत की सूची शामिल होती है.

SearchConversationsResponse

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

object (Conversation)

खोज के लिए इस्तेमाल हुए शब्दों से मेल खाने वाले बातचीत के ऑब्जेक्ट की सूची. हर बातचीत में conversation_id (फ़ॉर्मैट: spaces/{space}), display_name, conversation_type, और last_active_timestamp शामिल होता है.

nextPageToken

string

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

यह जानकारी सिर्फ़ तब अपने-आप भर जाती है, जब अनुरोध को participants के हिसाब से फ़िल्टर किया जाता है.

बातचीत

JSON के काेड में दिखाना
{
  "conversationId": string,
  "displayName": string,
  "conversationType": enum (ConversationType),
  "lastActiveTimestamp": string
}
फ़ील्ड
conversationId

string

बातचीत का आईडी (जैसे, "spaces/AAAAAAAAA").

displayName

string

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

conversationType

enum (ConversationType)

बातचीत का टाइप (DIRECT_MESSAGE, GROUP_CHAT या NAMED_SPACE).

lastActiveTimestamp

string (Timestamp format)

आईएसओ 8601 फ़ॉर्मैट में, बातचीत के आखिरी बार चालू होने का समय.

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

टाइमस्टैम्प

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

string (int64 format)

यह Unix epoch 1970-01-01T00:00:00Z के बाद से, यूटीसी समय के सेकंड दिखाता है. यह -62135596800 और 253402300799 के बीच होना चाहिए. इसमें ये दोनों संख्याएं भी शामिल हैं. यह 0001-01-01T00:00:00Z से 9999-12-31T23:59:59Z के बीच होना चाहिए.

nanos

integer

नैनोसेकंड रिज़ॉल्यूशन में सेकंड के नॉन-नेगेटिव फ़्रैक्शन. यह फ़ील्ड, अवधि का नैनोसेकंड वाला हिस्सा है. यह सेकंड का विकल्प नहीं है. फ़्रैक्शन वाली नेगेटिव सेकंड वैल्यू में, अब भी नॉन-नेगेटिव नैनो वैल्यू होनी चाहिए. ये वैल्यू, समय के साथ आगे बढ़ती हैं. यह संख्या 0 से 99,99,99,999 के बीच होनी चाहिए. हालांकि, इन दोनों में से भी कोई संख्या हो सकती है.

ConversationType

इससे बातचीत के टाइप के बारे में पता चलता है.

Enums
CONVERSATION_TYPE_UNSPECIFIED नहीं बताया गया है
NAMED_SPACE नाम वाला स्पेस.
GROUP_CHAT तीन या इससे ज़्यादा लोगों के बीच की ग्रुप चैट.
DIRECT_MESSAGE दो लोगों के बीच या किसी व्यक्ति और चैट ऐप्लिकेशन के बीच हुआ डायरेक्ट मैसेज.

टूल एनोटेशन

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

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

  • 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.memberships.readonly
  • https://www.googleapis.com/auth/chat.spaces
  • https://www.googleapis.com/auth/chat.spaces.readonly