MCP Tools Reference: mapstools.googleapis.com

टूल: resolve_maps_urls

यह फ़ंक्शन, Google Maps के यूआरएल की सूची को Google Maps के कैननिकल प्लेस आईडी में बदलता है.

इस टूल को कब कॉल करना चाहिए (ज़रूरी):

  • इस टूल का इस्तेमाल तब करें, जब उपयोगकर्ता Google Maps पर शेयर किए गए एक या एक से ज़्यादा लिंक या यूआरएल देता है. जैसे, 'https://maps.app.goo.gl/...', 'https://www.google.com/maps/place/...' या 'https://maps.google.com/...') से शुरू होता है. ऐसे में, आपको कैननिकल प्लेस आईडी निकालने होंगे.
  • एक बैच अनुरोध में, ज़्यादा से ज़्यादा 20 यूआरएल की समस्याओं को ठीक करने के लिए कहा जा सकता है.

इनपुट से जुड़ी ज़रूरी शर्तें (अहम):

  • urls (स्ट्रिंग का ऐरे - ज़रूरी है): हल करने के लिए Google Maps के यूआरएल की सूची. हर यूआरएल, Google Maps का मान्य और एक जगह का यूआरएल होना चाहिए.

Google Maps में सेव करें:

  • जवाब में save_to_maps_url फ़ील्ड शामिल होता है: यह एक Google Maps लिंक होता है, जिसमें सभी जगहों की जानकारी होती है.
  • जब उपयोगकर्ता को Google Maps में, हल की गई जगहों को सूची के तौर पर सेव करना, शेयर करना या खोलना हो (जैसे, बातचीत में शेयर की गई जगहों को इकट्ठा करना), तो उसे यह लिंक दिखाएं. इस लिंक को खुद न बनाएं.

गड़बड़ी ठीक करना (CRITICAL):

  • यह एक बैच प्रोसेसिंग टूल है. ऐसा हो सकता है कि किसी अनुरोध के लिए "मिले-जुले नतीजे" मिलें. उदाहरण के लिए, कुछ यूआरएल ठीक से काम करें, जबकि कुछ न करें.
  • entities की आउटपुट सूची, urls के इंडेक्स के साथ 1:1 मैप होती है. यूआरएल को हल न कर पाने की वजह से, entities सूची में मौजूद उससे जुड़े इंडेक्स में Entity मैसेज (कोई फ़ील्ड सेट नहीं है) दिखेगा.
  • आपको रिस्पॉन्स में मौजूद failed_requests मैप फ़ील्ड की जांच ज़रूर करनी चाहिए, ताकि यह पता लगाया जा सके कि कौनसे यूआरएल का इंडेक्स नहीं बन पाया. failed_requests की वैल्यू, अनुरोध में शामिल उस यूआरएल का इंडेक्स दिखाती है जिसे प्रोसेस नहीं किया जा सका. यह इंडेक्स, 0 से शुरू होता है. कुछ कॉल में गड़बड़ी होने की वजह से, यह न मान लें कि बैच में मौजूद सभी कॉल में गड़बड़ी हुई है.

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

कर्ल अनुरोध
curl --location 'https://mapstools.googleapis.com/mcp' \
--header 'content-type: application/json' \
--header 'accept: application/json, text/event-stream' \
--data '{
  "method": "tools/call",
  "params": {
    "name": "resolve_maps_urls",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

इनपुट स्कीमा

ResolveMapsUrls के लिए अनुरोध मैसेज.

ResolveMapsUrlsRequest

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

string

ज़रूरी है. वे Google Maps यूआरएल जिन्हें रिज़ॉल्व करना है. हर यूआरएल, Google Maps का मान्य यूआरएल होना चाहिए. उदाहरण के लिए, https://maps.app.goo.gl/..., https://www.google.com/maps/place/... या https://maps.google.com/.... फ़िलहाल, सिर्फ़ एक जगह पर ले जाने वाले यूआरएल इस्तेमाल किए जा सकते हैं. ज़्यादा से ज़्यादा 20 यूआरएल दिए जा सकते हैं.

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

ResolveMapsUrls के लिए जवाब का मैसेज.

ResolveMapsUrlsResponse

JSON के काेड में दिखाना
{
  "entities": [
    {
      object (Entity)
    }
  ],
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  },
  "saveToMapsUrl": string
}
फ़ील्ड
entities[]

object (Entity)

सिर्फ़ आउटपुट के लिए. Google Maps के यूआरएल से हल की गई इकाइयों की सूची. यह गारंटी है कि यह सूची, अनुरोध urls के इंडेक्स के साथ 1:1 मैप करेगी. इंडेक्स i पर मौजूद खाली मैसेज (जहां कोई entity सेट नहीं है) से पता चलता है कि उस यूआरएल के लिए समस्या हल नहीं हुई. अगर रिज़ॉल्यूशन फ़ेल हो जाता है, तो कृपया गड़बड़ी की स्थिति के लिए failed_requests फ़ील्ड देखें.

failedRequests

map (key: integer, value: object (Status))

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

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

saveToMapsUrl

string

सिर्फ़ आउटपुट के लिए. Google Maps में, ठीक की गई सभी इकाइयों को सेव करने का लिंक.

इकाई

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

  // Union field entity can be only one of the following:
  "place": string
  // End of list of possible types for union field entity.
}
फ़ील्ड
यूनियन फ़ील्ड entity. हल की गई इकाई का टाइप. entity इनमें से सिर्फ़ एक हो सकता है:
place

string

हल की गई जगह का संसाधन नाम.

FailedRequestsEntry

JSON के काेड में दिखाना
{
  "key": integer,
  "value": {
    object (Status)
  }
}
फ़ील्ड
key

integer

value

object (Status)

स्थिति

JSON के काेड में दिखाना
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
फ़ील्ड
code

integer

स्टेटस कोड, जो google.rpc.Code की enum वैल्यू होनी चाहिए.

message

string

डेवलपर को दिखने वाला गड़बड़ी का मैसेज, जो अंग्रेज़ी में होना चाहिए. उपयोगकर्ता को दिखने वाली गड़बड़ी के किसी भी मैसेज को स्थानीय भाषा में होना चाहिए. साथ ही, उसे google.rpc.Status.details फ़ील्ड में भेजा जाना चाहिए या क्लाइंट की ओर से स्थानीय भाषा में होना चाहिए.

details[]

object

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

एक ऑब्जेक्ट, जिसमें आर्बिट्ररी टाइप के अलग-अलग फ़ील्ड शामिल हों. एक ऐसा अतिरिक्त फ़ील्ड "@type" जिसमें टाइप की पहचान करने वाला यूआरआई हो. उदाहरण: { "id": 1234, "@type": "types.example.com/standard/id" }.

कोई भी

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

string

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

उदाहरण: type.googleapis.com/google.protobuf.StringValue

इस स्ट्रिंग में कम से कम एक / वर्ण होना चाहिए. साथ ही, आखिरी / के बाद का कॉन्टेंट, कैननिकल फ़ॉर्म में टाइप का पूरा नाम होना चाहिए. इसमें शुरुआती बिंदु नहीं होना चाहिए. इन यूआरआई रेफ़रंस पर कोई स्कीम न लिखें, ताकि क्लाइंट उनसे संपर्क न कर पाएं.

प्रीफ़िक्स कोई भी हो सकता है. Protobuf लागू करने वाले लोगों से उम्मीद की जाती है कि वे टाइप की पहचान करने के लिए, आखिरी / तक के सभी वर्णों को हटा दें. type.googleapis.com/ एक सामान्य डिफ़ॉल्ट प्रीफ़िक्स है, जिसकी ज़रूरत कुछ लेगसी वर्शन को होती है. इस प्रीफ़िक्स से टाइप के ऑरिजिन का पता नहीं चलता. साथ ही, इसमें शामिल यूआरआई से किसी भी अनुरोध का जवाब नहीं मिलता.

सभी टाइप यूआरएल स्ट्रिंग, मान्य यूआरआई रेफ़रंस होने चाहिए. साथ ही, टेक्स्ट फ़ॉर्मैट के लिए यह ज़रूरी है कि रेफ़रंस के कॉन्टेंट में सिर्फ़ अक्षर, अंक, प्रतिशत के तौर पर कोड किए गए एस्केप, और यहां दिए गए सेट के वर्ण शामिल हों (बाहरी बैकटिक शामिल नहीं हैं): /-.~_!$&()*+,;=. हम प्रतिशत के हिसाब से एन्कोडिंग की अनुमति देते हैं. हालांकि, लागू करने के दौरान उन्हें अनएस्केप नहीं किया जाना चाहिए, ताकि मौजूदा पार्सर के साथ कोई भ्रम न हो. उदाहरण के लिए, type.googleapis.com%2FFoo को अस्वीकार कर दिया जाना चाहिए.

Any के ओरिजनल डिज़ाइन में, इन टाइप यूआरएल पर टाइप रिज़ॉल्यूशन सेवा लॉन्च करने की संभावना पर विचार किया गया था. हालांकि, Protobuf ने कभी भी इसे लागू नहीं किया. साथ ही, इन यूआरएल से संपर्क करने को समस्या और सुरक्षा से जुड़ी संभावित समस्या माना जाता है. टाइप यूआरएल से संपर्क करने की कोशिश न करें.

value

string (bytes format)

इसमें type_url में बताए गए टाइप का Protobuf सीरियलाइज़ेशन होता है.

base64 कोड में बदली गई स्ट्रिंग.

टूल एनोटेशन

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

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

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

बदलाव करने वाला सुराग: ❌ | एक ही बार इस्तेमाल किया जा सकने वाला सुराग: ❌ | सिर्फ़ पढ़ने वाला सुराग: ✅ | ओपन वर्ल्ड सुराग: ❌