टूल: compute_routes
यह यात्रा शुरू करने की जगह और मंज़िल के बीच के रास्ते की जानकारी देता है. इसमें बीच में पड़ने वाले स्टॉप की जानकारी भी शामिल की जा सकती है. यह हर रास्ते के लिए दूरी और लगने वाले समय की जानकारी दिखाता है.
इनपुट से जुड़ी ज़रूरी शर्तें (अहम):
originऔरdestination(ऑब्जेक्ट - ज़रूरी): इनमें से हर एक को इनमें से किसी एक का इस्तेमाल करके उपलब्ध कराना ज़रूरी है:address(स्ट्रिंग, जैसे कि'Eiffel Tower, Paris'). नाम वाली जगहों, लैंडमार्क, और कारोबारों को सीधे तौर पर रिज़ॉल्व किया जाता है. इसलिए, किसी वेपॉइंट को जियोकोड करने के लिए, पहलेsearch_placesको कॉल न करें. उपयोगकर्ता ने जिस शहर, इलाके या देश का ज़िक्र किया है उसे शामिल करें.lat_lng(object,{"latitude": number, "longitude": number}).place_id(स्ट्रिंग, जैसे कि'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), उदाहरण के लिए,search_placesसे.
intermediate_waypoints(ऑब्जेक्ट का कलेक्शन - ज़रूरी नहीं): यात्रा शुरू करने की जगह और मंज़िल के बीच, क्रम से ज़्यादा से ज़्यादा 25 स्टॉप.originजैसा फ़ॉर्मैट.TRANSITके साथ काम नहीं करता. सिर्फ़ वे स्टॉप शामिल करें जिनके लिए उपयोगकर्ता ने अनुरोध किया है. 10 से ज़्यादा इंटरमीडिएट वेपॉइंट तय करने पर, ज़्यादा शुल्क और ज़्यादा इंतज़ार का समय लगेगा.travel_mode(enum - ज़रूरी नहीं):DRIVE(डिफ़ॉल्ट),WALK,BICYCLEयाTRANSIT.समय (ज़रूरी नहीं - ज़्यादा से ज़्यादा एक सेट करें): यूटीसी ऑफ़सेट के साथ आरएफ़सी 3339 टाइमस्टैंप, जैसे कि
'2026-09-19T08:00:00-07:00'. डिफ़ॉल्ट रूप से, यह 'अभी रवाना हो रही है' पर सेट होता है.TRANSITके लिए, समय को पिछले सात दिनों या आने वाले 100 दिनों तक के लिए सेट किया जा सकता है. अन्य मोड के लिए, समय को आने वाले 365 दिनों तक के लिए सेट किया जा सकता है. हालांकि, इसे बीते हुए समय के लिए सेट नहीं किया जा सकता.departure_time: इसका इस्तेमाल तब करें, जब उपयोगकर्ता यह बताए कि वह कब रवाना होगा (उदाहरण के लिए, "कल सुबह 8 बजे").arrival_time: इसका इस्तेमाल तब करें, जब उपयोगकर्ता यह बताए कि उसे कब पहुंचना है. उदाहरण के लिए, "सुबह 9 बजे तक वहां पहुंचना है".
routing_preference(enum - ज़रूरी नहीं है):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(डिफ़ॉल्ट): लाइव ट्रैफ़िक, घटनाओं, और बंद सड़कों को अनदेखा करता है. इंतज़ार का समय सबसे कम रखना.ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: उपलब्ध होने पर, ट्रैफ़िक की लाइव जानकारी का इस्तेमाल करता है. यह सुविधाWALKयाBICYCLEके लिए उपलब्ध नहीं है. इसे सिर्फ़ तब सेट करें, जब उपयोगकर्ता ट्रैफ़िक, भीड़भाड़ या ट्रैफ़िक के हिसाब से अडजस्ट किए गए ईटीए के बारे में पूछे. इसमें ज़्यादा लागत और इंतज़ार का समय लगता है.
location_bias(ऑब्जेक्ट - ज़रूरी नहीं):{"latitude": number, "longitude": number}इसका इस्तेमाल, वेपॉइंट के पतों में जगहों के नामों को साफ़ तौर पर बताने के लिए किया जाता है. अगर किसी जगह का नाम साफ़ तौर पर समझ नहीं आ रहा है (जैसे, "स्प्रिंगफ़ील्ड") और उपयोगकर्ता ने कोई इलाका नहीं बताया है, तोaddressमें दिया गया नाम ही रखें. साथ ही, किसी इलाके का अनुमान लगाने के बजाय,location_biasको उस इलाके पर सेट करें जहां आपको जाना है.compute_alternative_routes(बूलियन - ज़रूरी नहीं): इसेtrueपर सिर्फ़ तब सेट करें, जब उपयोगकर्ता रास्ते के विकल्प या अन्य रास्ते के बारे में पूछे. डिफ़ॉल्ट रूप से,falseपर सेट होता है. इससे सिर्फ़ सुझाया गया रास्ता दिखता है.include_polyline(बूलियन - ज़रूरी नहीं): इसेtrueपर सिर्फ़ तब सेट करें, जब रास्ते की ज्यामिति (encoded_polyline) की ज़रूरत हो. डिफ़ॉल्ट रूप से, यहfalseपर सेट होता है.
टूल कॉल के लिए निर्देश:
- अगर शुरुआत या मंज़िल की जानकारी मौजूद नहीं है, तो टूल को कॉल करने से पहले, आपको उपयोगकर्ता से साफ़ तौर पर जानकारी मांगनी होगी.
- "A से B कितनी दूर है?" जैसे सवालों के लिए, B को
originऔर A कोdestinationके तौर पर इस्तेमाल करें.
टूल कॉल का उदाहरण: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"Louvre Museum"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}
Instructions for Response:
- जब वैकल्पिक रास्तों का अनुरोध किया जाता है, तो रास्तों को सबसे ज़्यादा से लेकर सबसे कम सुझाए गए क्रम में लगाया जाता है.
- अगर
routesखाली है, तो उपयोगकर्ता को बताएं कि कोई रास्ता नहीं मिला. रास्ते का अनुमान न लगाएं. DRIVEरास्ते पर मौजूद जगहों को ढूंढने के लिए, रास्ते केretrieval_tokenकोsearch_along_routeपर पास करें. यह टोकन 10 मिनट के लिए मान्य होता है.- सिर्फ़ टूल से मिले तथ्यों को शामिल करें. मोड़-दर-मोड़ निर्देश, बस, मेट्रो वगैरह की लाइनें, स्टेशन, प्लैटफ़ॉर्म या ट्रांसफ़र की जानकारी खुद से न बनाएं.
- उपलब्ध होने पर, हर रूट के
attributionफ़ील्ड का इस्तेमाल करके, तथ्यों पर आधारित आउटपुट को सोर्स के साथ एट्रिब्यूट किया जाना चाहिए.
यहां दिए गए कोड सैंपल में, curl का इस्तेमाल करके compute_routes एमसीपी टूल को कॉल करने का तरीका बताया गया है.
| 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": "compute_routes", "arguments": { // Provide these details according to the MCP tool specification. } }, "jsonrpc": "2.0", "id": 1 }' |
इनपुट स्कीमा
ComputeRoutesRequest.
ComputeRoutesRequest
| JSON के काेड में दिखाना |
|---|
{ "origin": { object ( |
| फ़ील्ड | |
|---|---|
origin |
ज़रूरी है. यात्रा शुरू होने की जगह का वेपॉइंट. |
destination |
ज़रूरी है. मंज़िल का वेपॉइंट. |
travelMode |
ज़रूरी नहीं. इससे परिवहन के साधन का पता चलता है. |
intermediateWaypoints[] |
ज़रूरी नहीं. यात्रा शुरू करने की जगह और मंज़िल के बीच के स्टॉप, जिनसे होकर गुज़रना है. ज़्यादा से ज़्यादा 25 इंटरमीडिएट वेपॉइंट इस्तेमाल किए जा सकते हैं. रास्ते में 10 से ज़्यादा वेपॉइंट तय करने पर, ज़्यादा शुल्क और ज़्यादा इंतज़ार का समय लगेगा. |
routingPreference |
ज़रूरी नहीं. इससे यह तय होता है कि रास्ते का हिसाब लगाने के लिए, ट्रैफ़िक डेटा का इस्तेमाल कैसे किया जाए. |
locationBias |
ज़रूरी नहीं. वह जगह जिसके हिसाब से खोज के नतीजे दिखाए जाएंगे. उदाहरण के लिए, वेपॉइंट टेक्स्ट क्वेरी को साफ़ तौर पर समझने के लिए. |
includePolyline |
ज़रूरी नहीं. जवाब में दिए गए रास्तों में, एन्कोड की गई पॉलीलाइन को शामिल करना है या नहीं. डिफ़ॉल्ट रूप से, यह |
computeAlternativeRoutes |
ज़रूरी नहीं. सुझाए गए रास्ते के अलावा, अन्य रास्तों का हिसाब लगाना है या नहीं. यह डिफ़ॉल्ट रूप से, 'गलत' पर सेट होता है. इस मामले में, सिर्फ़ सुझाया गया रास्ता दिखता है. इस पैरामीटर को true पर सेट करने पर, उपलब्ध सभी रास्ते दिखाए जाते हैं. हालांकि, ऐसा हो सकता है कि हर अनुरोध के लिए वैकल्पिक रास्ते उपलब्ध न हों. |
यूनियन फ़ील्ड timing. इससे पता चलता है कि शुरुआती जगह से कब निकलना है या आखिरी वेपॉइंट पर कब पहुंचना है. अगर कोई वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट रूप से इसकी वैल्यू मौजूदा समय पर सेट होती है. TRANSIT के लिए, समय ज़्यादा से ज़्यादा सात दिन पहले और ज़्यादा से ज़्यादा 100 दिन बाद का होना चाहिए. यात्रा के अन्य तरीकों के लिए, समय बीत चुका नहीं होना चाहिए. साथ ही, यह आने वाले समय में ज़्यादा से ज़्यादा 365 दिनों का होना चाहिए. timing इनमें से सिर्फ़ एक हो सकता है: |
|
departureTime |
ज़रूरी नहीं. इससे पता चलता है कि रास्ते का हिसाब, निकलने के समय के आधार पर लगाया जाना चाहिए. यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
arrivalTime |
ज़रूरी नहीं. इससे पता चलता है कि रास्ते का हिसाब, पहुंचने के समय के आधार पर लगाया जाना चाहिए. यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: |
वेपॉइंट
| JSON के काेड में दिखाना |
|---|
{ // Union field |
| फ़ील्ड | |
|---|---|
यूनियन फ़ील्ड location_type. किसी जगह को दिखाने के अलग-अलग तरीके. location_type इनमें से सिर्फ़ एक हो सकता है: |
|
latLng |
भौगोलिक निर्देशांकों का इस्तेमाल करके तय किया गया पॉइंट. |
placeId |
वेपॉइंट से जुड़ा जगह का आईडी. |
address |
किसी व्यक्ति के लिए आसानी से पढ़ा जा सकने वाला पता या Plus Code. ज़्यादा जानकारी के लिए, https://plus.codes पर जाएं. |
LatLng
| JSON के काेड में दिखाना |
|---|
{ "latitude": number, "longitude": number } |
| फ़ील्ड | |
|---|---|
latitude |
डिग्री में अक्षांश. यह [-90.0, +90.0] की रेंज में होना चाहिए. |
longitude |
डिग्री में देशांतर. यह [-180.0, +180.0] की रेंज में होना चाहिए. |
टाइमस्टैम्प
| JSON के काेड में दिखाना |
|---|
{ "seconds": string, "nanos": integer } |
| फ़ील्ड | |
|---|---|
seconds |
यह Unix epoch 1970-01-01T00:00:00Z के बाद से, यूटीसी समय के सेकंड दिखाता है. यह -62135596800 और 253402300799 के बीच होना चाहिए. इसमें ये दोनों संख्याएं भी शामिल हैं. यह 0001-01-01T00:00:00Z से 9999-12-31T23:59:59Z के बीच होना चाहिए. |
nanos |
नैनोसेकंड रिज़ॉल्यूशन में, सेकंड के नॉन-नेगेटिव फ़्रैक्शन. यह फ़ील्ड, अवधि का नैनोसेकंड वाला हिस्सा है. यह सेकंड का विकल्प नहीं है. फ़्रैक्शन वाली नेगेटिव सेकंड वैल्यू में, अब भी नॉन-नेगेटिव नैनो वैल्यू होनी चाहिए, जो समय के साथ आगे बढ़ती हैं. यह संख्या 0 से 99,99,99,999 के बीच होनी चाहिए. हालांकि, इन दोनों में से भी कोई संख्या हो सकती है. |
RouteTravelMode
यात्रा के मोड की जानकारी देने के लिए इस्तेमाल की जाने वाली वैल्यू का सेट.
| Enums | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
यात्रा का कोई मोड तय नहीं किया गया. डिफ़ॉल्ट रूप से, यह DRIVE पर सेट होता है. |
DRIVE |
कार से यात्रा करें. |
WALK |
पैदल यात्रा करना. ध्यान दें: WALK के रास्ते बीटा वर्शन में हैं. इसलिए, हो सकता है कि कभी-कभी साफ़ फ़ुटपाथ या पैदल चलने के रास्ते न दिखें. आपको अपने ऐप्लिकेशन में पैदल चलने के लिए दिखाए जाने वाले सभी रास्तों के लिए, उपयोगकर्ता को यह चेतावनी दिखानी होगी. |
BICYCLE |
साइकल से यात्रा करना. |
TRANSIT |
बस, मेट्रो वगैरह से यात्रा करें. |
RoutingPreference
वैल्यू का एक सेट, जो रास्ते का हिसाब लगाते समय ध्यान में रखे जाने वाले फ़ैक्टर के बारे में बताता है.
| Enums | |
|---|---|
ROUTING_PREFERENCE_UNSPECIFIED |
रूटिंग की कोई प्राथमिकता तय नहीं की गई है. डिफ़ॉल्ट रूप से, यह ROUTING_PREFERENCE_TRAFFIC_UNAWARE पर सेट होता है. |
ROUTING_PREFERENCE_TRAFFIC_UNAWARE |
यह ट्रैफ़िक के हाल को ध्यान में रखे बिना, रास्तों का हिसाब लगाता है. यह तब सही होता है, जब ट्रैफ़िक का हाल मायने नहीं रखता या लागू नहीं होता. इस वैल्यू का इस्तेमाल करने पर, इंतज़ार का समय सबसे कम होता है. |
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL |
ट्रैफ़िक की जानकारी उपलब्ध होने पर, ट्रैफ़िक का हाल ध्यान में रखकर रास्ते का हिसाब लगाता है. इस वैल्यू से Pro टियर ट्रिगर होगा. साथ ही, बिलिंग की कुल लागत और इंतज़ार का समय बढ़ जाएगा. |
आउटपुट स्कीमा
ComputeRoutesResponse.
ComputeRoutesResponse
| JSON के काेड में दिखाना |
|---|
{
"routes": [
{
object ( |
| फ़ील्ड | |
|---|---|
routes[] |
इसमें अनुरोध की गई शुरुआती जगह और मंज़िल के बीच के रास्ते शामिल होते हैं. इन्हें सबसे ज़्यादा सुझाए गए रास्ते से लेकर सबसे कम सुझाए गए रास्ते के क्रम में लगाया जाता है. सिर्फ़ एक रास्ता दिखाया जाता है. हालांकि, अगर |
रास्ता
| JSON के काेड में दिखाना |
|---|
{
"distanceMeters": integer,
"duration": string,
"attribution": {
object ( |
| फ़ील्ड | |
|---|---|
distanceMeters |
मीटर में, रास्ते की दूरी. |
duration |
रास्ते पर नेविगेट करने में लगने वाला समय. सेकंड में अवधि, जिसमें नौ फ़्रैक्शनल अंक हो सकते हैं. यह ' |
attribution |
रास्ते के साथ दिखाने के लिए ज़रूरी एट्रिब्यूशन. |
encodedPolyline |
रूट की एन्कोड की गई पॉलीलाइन. https://developers.google.com/maps/documentation/utilities/polylinealgorithm देखें |
retrievalToken |
एक टोकन, जिसका इस्तेमाल SearchAlongRoute जैसे डाउनस्ट्रीम टूल में इस खास रास्ते को वापस पाने के लिए किया जा सकता है. यह 10 मिनट के लिए मान्य है. |
कुल समय
| JSON के काेड में दिखाना |
|---|
{ "seconds": string, "nanos": integer } |
| फ़ील्ड | |
|---|---|
seconds |
समय अवधि के सेकंड. यह -31,55,76,000,000 से +31,55,76,000,000 के बीच होना चाहिए. ध्यान दें: इन सीमाओं का हिसाब इस तरह लगाया जाता है: 60 सेकंड/मिनट * 60 मिनट/घंटा * 24 घंटे/दिन * 365.25 दिन/साल * 10,000 साल |
nanos |
समय की अवधि के नैनोसेकंड रिज़ॉल्यूशन पर, सेकंड के साइन किए गए फ़्रैक्शन. एक सेकंड से कम की अवधि को 0 |
एट्रिब्यूशन
| JSON के काेड में दिखाना |
|---|
{ "title": string, "url": string } |
| फ़ील्ड | |
|---|---|
title |
एट्रिब्यूशन के लिए दिखाया जाने वाला टाइटल. |
url |
एट्रिब्यूशन के लिए लिंक किया जाने वाला यूआरएल. |
टूल एनोटेशन
टूल के एनोटेशन, एमसीपी क्लाइंट को भेजे जाते हैं. इससे उन्हें किसी टूल से जुड़े बुनियादी जोखिम के बारे में जानकारी मिलती है. ज़्यादातर क्लाइंट इन हिंट को भरोसेमंद नहीं मानते. हालांकि, इनका इस्तेमाल यह तय करने के लिए किया जा सकता है कि उपयोगकर्ता को पुष्टि करने का प्रॉम्प्ट कब भेजा जाए.
टाइटल स्ट्रिंग के साथ-साथ, बूलियन हिंट के बारे में यहां बताया गया है:
readOnlyHint: अगर इसकी वैल्यू true है, तो टूल अपने एनवायरमेंट में बदलाव नहीं करता. डिफ़ॉल्ट: false.destructiveHint: अगर इसकी वैल्यू true है, तो टूल नुकसान पहुंचाने वाली कार्रवाइयां कर सकता है. अगर इसकी वैल्यू false है, तो टूल सिर्फ़ जोड़ने वाली कार्रवाइयां कर सकता है. डिफ़ॉल्ट: true.idempotentHint: अगर इसकी वैल्यू true है, तो एक ही आर्ग्युमेंट के साथ टूल को बार-बार कॉल करने से, उसके एनवायरमेंट पर कोई और असर नहीं पड़ेगा. डिफ़ॉल्ट: false.openWorldHint: सही होने पर, टूल बाहरी इकाइयों की 'विशाल दुनिया' के साथ इंटरैक्ट कर सकता है. अगर यह वैल्यू false पर सेट है, तो टूल सिर्फ़ इंटरनल इकाइयों के साथ इंटरैक्ट कर सकता है. उदाहरण के लिए, वेब सर्च टूल ओपन वर्ल्ड होगा, जबकि मेमोरी टूल ओपन वर्ल्ड नहीं होगा.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌