MCP Tools Reference: chatmcp.googleapis.com

टूल: search_messages

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

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

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

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

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

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)
  ],
  "hasAttachment": boolean
}
फ़ील्ड
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

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

spaceDisplayNames[]

string

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

conversationTypes[]

enum (ConversationType)

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

hasAttachment

boolean

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

ConversationType

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

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

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

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)
    }
  ],
  "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.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