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 में, खोजी गई जगहों को सूची के तौर पर सेव करना हो, शेयर करना हो या खोलना हो, तो उसे यह लिंक दिखाएं. जैसे, किसी बातचीत में शेयर की गई जगहों को इकट्ठा करना. इस लिंक को खुद न बनाएं.

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

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

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

Curl अनुरोध
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: अगर इसकी वैल्यू true है, तो टूल अपने एनवायरमेंट में बदलाव नहीं करता. डिफ़ॉल्ट: false.
  • destructiveHint: अगर इसकी वैल्यू true है, तो टूल नुकसान पहुंचाने वाली कार्रवाइयां कर सकता है. अगर यह वैल्यू false पर सेट है, तो टूल सिर्फ़ जोड़ने वाली कार्रवाइयां कर सकता है. डिफ़ॉल्ट: true.
  • idempotentHint: अगर इसकी वैल्यू true है, तो टूल को एक ही आर्ग्युमेंट के साथ बार-बार कॉल करने पर, उसके एनवायरमेंट पर कोई और असर नहीं पड़ेगा. डिफ़ॉल्ट: false.
  • openWorldHint: सही होने पर, टूल बाहरी इकाइयों की 'विशाल दुनिया' के साथ इंटरैक्ट कर सकता है. अगर यह वैल्यू false है, तो टूल सिर्फ़ इंटरनल इकाइयों के साथ इंटरैक्ट कर सकता है. उदाहरण के लिए, वेब सर्च टूल ओपन वर्ल्ड होगा, जबकि मेमोरी टूल ओपन वर्ल्ड नहीं होगा.

Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌