MCP Tools Reference: chatmcp.googleapis.com

टूल: search_messages

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

search_messages का इस्तेमाल करने का फ़ैसला लेते समय, इस दिशा-निर्देश का पालन करें. यह दिशा-निर्देश, खोज या पढ़ने के अन्य टूल के बारे में है:

  • search_messages का इस्तेमाल तब करें, जब आपको किसी मैसेज का कॉन्टेंट, कीवर्ड, मेंशन, लिंक, ईमेल भेजने वाले या नहीं पढ़े गए मैसेज ढूंढने हों. ऐसा हो सकता है कि ये मैसेज कई स्पेस में मौजूद हों या इनका बातचीत आईडी पता न हो.
  • अगर आपको किसी स्पेस या थ्रेड का आईडी पता है और आपको मैसेज को समय के हिसाब से क्रमवार तरीके से पढ़ना है, तो list_messages का इस्तेमाल करें.
  • स्पेस के डिसप्ले नेम या उसमें शामिल लोगों के हिसाब से बातचीत के आईडी जैसे स्पेस का मेटाडेटा ढूंढने के लिए, search_conversations का इस्तेमाल करें. यह सिर्फ़ मेटाडेटा खोजता है, मैसेज का कॉन्टेंट नहीं.

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

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

इनपुट स्कीमा

SearchMessagesRequest

JSON के काेड में दिखाना
{
  "searchParameters": {
    object (SearchParameters)
  },
  "pageSize": integer,
  "pageToken": string
}
फ़ील्ड
searchParameters

object (SearchParameters)

ज़रूरी है. खोज के लिए इस्तेमाल किए जाने वाले पैरामीटर.

pageSize

integer

ज़रूरी नहीं. ज़्यादा से ज़्यादा नतीजे दिखाने की संख्या (ज़्यादा से ज़्यादा 100). अगर इसे तय नहीं किया गया है, तो ज़्यादा से ज़्यादा 25 नतीजे दिखते हैं.

pageToken

string

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

SearchParameters

JSON के काेड में दिखाना
{
  "keywords": [
    string
  ],
  "conversationId": string,
  "sender": string,
  "isUnread": boolean,
  "hasLink": boolean,
  "startTime": string,
  "endTime": string,
  "mentionsMe": boolean,
  "conversationIncludesUser": string,
  "spaceDisplayNames": [
    string
  ],
  "conversationTypes": [
    enum (ConversationType)
  ]
}
फ़ील्ड
keywords[]

string

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

conversationId

string

ज़रूरी नहीं. यह खोज को किसी खास बातचीत के आइडेंटिफ़ायर तक सीमित करता है. यह आइडेंटिफ़ायर, search_conversations टूल से मिलता है. फ़ॉर्मैट: spaces/{ID}.

sender

string

ज़रूरी नहीं. किसी खास उपयोगकर्ता के मैसेज फ़िल्टर करें. भेजने वाले के ईमेल पते या संसाधन के नाम का इस्तेमाल किया जा सकता है. उपयोगकर्ता के संसाधन नामों को users/{ID} के तौर पर फ़ॉर्मैट किया जाता है. इसमें {ID}, व्यक्ति का आईडी या उसका ईमेल पता हो सकता है.

isUnread

boolean

ज़रूरी नहीं. उन मैसेज को फ़िल्टर करें जिन्हें कॉल करने वाले व्यक्ति ने नहीं पढ़ा है.

hasLink

boolean

ज़रूरी नहीं. ऐसे मैसेज के लिए फ़िल्टर करें जिनमें कम से कम एक यूआरएल शामिल हो.

startTime

string

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

endTime

string

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

mentionsMe

boolean

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

conversationIncludesUser

string

ज़रूरी नहीं. DM और ग्रुप चैट में मौजूद उन मैसेज को फ़िल्टर करें जिनमें उपयोगकर्ता का ईमेल पता या आईडी शामिल है.

spaceDisplayNames[]

string

ज़रूरी नहीं. स्पेस के नामों की सूची के हिसाब से फ़िल्टर करें. स्पेस के डिसप्ले नेम, कुछ हद तक मेल खाते हैं. ध्यान दें: सिर्फ़ सबसे ज़्यादा मिलते-जुलते पांच नतीजे दिखाए जाते हैं.

conversationTypes[]

enum (ConversationType)

ज़रूरी नहीं. बातचीत के टाइप के हिसाब से फ़िल्टर करें.

ConversationType

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

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

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

Google Chat में मैसेज खोजने के अनुरोध का जवाब. अगर next_page_token भर दिया गया है, तो नतीजों का अगला पेज पाने के लिए, SearchMessages को उस टोकन के साथ फिर से कॉल किया जा सकता है.

SearchMessagesResponse

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

object (ChatMessage)

खोज के लिए इस्तेमाल हुए शब्दों से मेल खाने वाले मैसेज ऑब्जेक्ट की सूची.

nextPageToken

string

यह एक ऐसा टोकन है जिसे 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.readonly
  • https://www.googleapis.com/auth/chat.spaces.readonly
  • https://www.googleapis.com/auth/chat.memberships.readonly
  • https://www.googleapis.com/auth/chat.users.readstate.readonly