MCP Tools Reference: mapstools.googleapis.com

टूल: compute_routes

यह एपीआई, यात्रा शुरू करने की जगह और मंज़िल के बीच के रास्ते की जानकारी देता है. इसमें, यात्रा के दौरान पड़ने वाले स्टॉप की जानकारी भी शामिल की जा सकती है. यह हर रास्ते के लिए दूरी और लगने वाला समय दिखाता है.

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

  1. origin और destination (ऑब्जेक्ट - ज़रूरी): इनमें से हर एक को इनमें से किसी एक का इस्तेमाल करके उपलब्ध कराया जाना चाहिए:

    • address (स्ट्रिंग, जैसे कि 'Eiffel Tower, Paris'). नाम वाली जगहों, लैंडमार्क, और कारोबारों को सीधे तौर पर रिज़ॉल्व किया जाता है. इसलिए, किसी वेपॉइंट को जियोकोड करने के लिए, पहले search_places को कॉल न करें. उपयोगकर्ता ने जिस शहर, इलाके या देश का नाम लिया है उसे शामिल करें.
    • lat_lng (object, {"latitude": number, "longitude": number}).
    • place_id (स्ट्रिंग, जैसे कि 'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), उदाहरण के लिए, search_places से.
  2. intermediate_waypoints (ऑब्जेक्ट का कलेक्शन - ज़रूरी नहीं): यात्रा शुरू करने की जगह और मंज़िल के बीच, क्रम से ज़्यादा से ज़्यादा 10 स्टॉप. origin जैसा फ़ॉर्मैट. TRANSIT के साथ काम नहीं करता. सिर्फ़ वे स्टॉप शामिल करें जिनके लिए उपयोगकर्ता ने अनुरोध किया है.

  3. travel_mode (enum - ज़रूरी नहीं): DRIVE (डिफ़ॉल्ट), WALK, BICYCLE या TRANSIT.

  4. समय (ज़रूरी नहीं - ज़्यादा से ज़्यादा एक सेट करें): यूटीसी ऑफ़सेट के साथ आरएफ़सी 3339 टाइमस्टैंप, जैसे कि '2026-09-19T08:00:00-07:00'. डिफ़ॉल्ट रूप से, यह 'अभी रवाना हो रही है' पर सेट होता है. TRANSIT के लिए, समय को पिछले सात दिनों या आने वाले 100 दिनों तक के लिए सेट किया जा सकता है. अन्य मोड के लिए, समय को आने वाले 365 दिनों तक के लिए सेट किया जा सकता है. हालांकि, इसे बीते हुए समय के लिए सेट नहीं किया जा सकता.

    • departure_time: इसका इस्तेमाल तब करें, जब उपयोगकर्ता यह बताए कि वह कब रवाना होगा (उदाहरण के लिए, "कल सुबह 8 बजे").
    • arrival_time: इसका इस्तेमाल तब करें, जब उपयोगकर्ता यह बताए कि उसे कब पहुंचना है. उदाहरण के लिए, "सुबह 9 बजे तक वहां पहुंचना है".
  5. routing_preference (enum - ज़रूरी नहीं है):

    • ROUTING_PREFERENCE_TRAFFIC_UNAWARE (डिफ़ॉल्ट): यह लाइव ट्रैफ़िक, घटनाओं, और बंद सड़कों को अनदेखा करता है. इंतज़ार का समय सबसे कम.
    • ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: उपलब्ध होने पर, लाइव ट्रैफ़िक की जानकारी का इस्तेमाल करता है. यह सुविधा WALK या BICYCLE के लिए उपलब्ध नहीं है. इसे सिर्फ़ तब सेट करें, जब उपयोगकर्ता ट्रैफ़िक, भीड़भाड़ या ट्रैफ़िक के हिसाब से ईटीए के बारे में पूछे. इसमें ज़्यादा लागत और इंतज़ार का समय लगता है.
  6. location_bias (ऑब्जेक्ट - ज़रूरी नहीं): {"latitude": number, "longitude": number} इसका इस्तेमाल, वेपॉइंट के पतों में जगहों के नामों को साफ़ तौर पर बताने के लिए किया जाता है. अगर किसी जगह का नाम साफ़ तौर पर नहीं बताया गया है (जैसे, "स्प्रिंगफ़ील्ड") और उपयोगकर्ता ने कोई इलाका नहीं बताया है, तो नाम को address में दिए गए नाम के तौर पर ही रखें. साथ ही, किसी इलाके का अनुमान लगाने के बजाय, location_bias को उस इलाके पर सेट करें जहां आपको जाना है.

  7. compute_alternative_routes (बूलियन - ज़रूरी नहीं): इसे true पर सिर्फ़ तब सेट करें, जब उपयोगकर्ता रास्ते के विकल्प या अन्य रास्ते के बारे में पूछे. डिफ़ॉल्ट रूप से, false पर सेट होता है. इससे सिर्फ़ सुझाया गया रास्ता दिखता है.

  8. 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"}

जवाब देने के लिए निर्देश:

  • जब वैकल्पिक रास्तों का अनुरोध किया जाता है, तो रास्तों को सबसे ज़्यादा से लेकर सबसे कम सुझाए गए क्रम में लगाया जाता है.
  • अगर routes खाली है, तो उपयोगकर्ता को बताएं कि कोई रास्ता नहीं मिला. रास्ते का अनुमान न लगाएं.
  • सिर्फ़ टूल से मिले तथ्यों को बताएं. मोड़-दर-मोड़ निर्देश, बस, मेट्रो वगैरह की लाइनें, स्टेशन, प्लैटफ़ॉर्म या ट्रांसफ़र की जानकारी खुद से न बनाएं.
  • तथ्यों पर आधारित आउटपुट को सोर्स के साथ एट्रिब्यूट किया जाना चाहिए. इसके लिए, हर रूट के 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 (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "travelMode": enum (RouteTravelMode),
  "intermediateWaypoints": [
    {
      object (Waypoint)
    }
  ],
  "routingPreference": enum (RoutingPreference),
  "locationBias": {
    object (LatLng)
  },
  "includePolyline": boolean,
  "computeAlternativeRoutes": boolean,

  // Union field timing can be only one of the following:
  "departureTime": string,
  "arrivalTime": string
  // End of list of possible types for union field timing.
}
फ़ील्ड
origin

object (Waypoint)

ज़रूरी है. यात्रा शुरू होने की जगह का वेपॉइंट.

destination

object (Waypoint)

ज़रूरी है. मंज़िल का वेपॉइंट.

travelMode

enum (RouteTravelMode)

ज़रूरी नहीं. इससे यात्रा के साधन के बारे में पता चलता है.

intermediateWaypoints[]

object (Waypoint)

ज़रूरी नहीं. यात्रा शुरू करने की जगह और मंज़िल के बीच के स्टॉप, जहां से क्रम से गुज़रना है. ज़्यादा से ज़्यादा 10 इंटरमीडिएट वेपॉइंट इस्तेमाल किए जा सकते हैं. travel_mode के TRANSIT होने पर, इंटरमीडिएट वेपॉइंट का इस्तेमाल नहीं किया जा सकता.

routingPreference

enum (RoutingPreference)

ज़रूरी नहीं. इससे यह तय होता है कि रास्ते का हिसाब लगाने के लिए, ट्रैफ़िक डेटा का इस्तेमाल कैसे किया जाए. travel_mode के WALK या BICYCLE होने पर, ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL का इस्तेमाल नहीं किया जा सकता. TRANSIT के लिए, यह रीयल टाइम में बस, मेट्रो वगैरह का डेटा दिखाता है. जैसे, देरी और रद्द होने की जानकारी.

locationBias

object (LatLng)

ज़रूरी नहीं. कोई ऐसी जगह जिसके हिसाब से खोज के नतीजे दिखाए जाएं. उदाहरण के लिए, वेपॉइंट टेक्स्ट क्वेरी को साफ़ तौर पर समझने के लिए.

includePolyline

boolean

ज़रूरी नहीं. जवाब में दिए गए रास्तों में, एन्कोड की गई पॉलीलाइन को शामिल करना है या नहीं. डिफ़ॉल्ट रूप से, यह false पर सेट होता है. true पर सेट होने पर, Route.encoded_polyline दिखता है.

computeAlternativeRoutes

boolean

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

यूनियन फ़ील्ड timing. इससे पता चलता है कि शुरुआती जगह से कब निकलना है या आखिरी वेपॉइंट पर कब पहुंचना है. अगर कोई वैल्यू नहीं दी जाती है, तो डिफ़ॉल्ट रूप से इसकी वैल्यू मौजूदा समय पर सेट होती है. TRANSIT के लिए, समय ज़्यादा से ज़्यादा सात दिन पहले और ज़्यादा से ज़्यादा 100 दिन बाद का होना चाहिए. यात्रा के अन्य तरीकों के लिए, समय बीत चुका नहीं होना चाहिए. साथ ही, यह आने वाले समय में ज़्यादा से ज़्यादा 365 दिनों का होना चाहिए. timing इनमें से सिर्फ़ एक हो सकता है:
departureTime

string (Timestamp format)

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

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

arrivalTime

string (Timestamp format)

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

यह आरएफ़सी 3339 का इस्तेमाल करता है. इसमें जनरेट किया गया आउटपुट हमेशा Z-नॉर्मलाइज़ किया जाएगा और इसमें 0, 3, 6 या 9 फ़्रैक्शनल अंक इस्तेमाल किए जाएंगे. "Z" के अलावा, अन्य ऑफ़सेट भी स्वीकार किए जाते हैं. उदाहरण: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" या "2014-10-02T15:01:23+05:30".

टाइमस्टैम्प

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

string (int64 format)

यह Unix epoch 1970-01-01T00:00:00Z के बाद से, यूटीसी समय के सेकंड दिखाता है. यह -62135596800 और 253402300799 के बीच होना चाहिए. इसमें ये दोनों संख्याएं भी शामिल हैं. यह 0001-01-01T00:00:00Z से 9999-12-31T23:59:59Z के बीच होना चाहिए.

nanos

integer

नैनोसेकंड रिज़ॉल्यूशन में सेकंड के नॉन-नेगेटिव फ़्रैक्शन. यह फ़ील्ड, अवधि का नैनोसेकंड वाला हिस्सा है. यह सेकंड का विकल्प नहीं है. फ़्रैक्शन वाली नेगेटिव सेकंड वैल्यू में, अब भी नॉन-नेगेटिव नैनो वैल्यू होनी चाहिए. ये वैल्यू, समय के साथ आगे बढ़ती हैं. यह संख्या 0 से 99,99,99,999 के बीच होनी चाहिए. हालांकि, इन दोनों में से भी कोई संख्या हो सकती है.

वेपॉइंट

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

  // Union field location_type can be only one of the following:
  "latLng": {
    object (LatLng)
  },
  "placeId": string,
  "address": string
  // End of list of possible types for union field location_type.
}
फ़ील्ड
यूनियन फ़ील्ड location_type. किसी जगह को दिखाने के अलग-अलग तरीके. location_type इनमें से सिर्फ़ एक हो सकता है:
latLng

object (LatLng)

भौगोलिक निर्देशांकों का इस्तेमाल करके तय किया गया पॉइंट.

placeId

string

वेपॉइंट से जुड़ा जगह का आईडी.

address

string

किसी व्यक्ति के लिए आसानी से पढ़ा जा सकने वाला पता या Plus Code. ज़्यादा जानकारी के लिए, https://plus.codes पर जाएं.

LatLng

JSON के काेड में दिखाना
{
  "latitude": number,
  "longitude": number
}
फ़ील्ड
latitude

number

डिग्री में अक्षांश. यह [-90.0, +90.0] की रेंज में होना चाहिए.

longitude

number

डिग्री में देशांतर. यह [-180.0, +180.0] की रेंज में होना चाहिए.

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

ट्रैफ़िक की जानकारी उपलब्ध होने पर, ट्रैफ़िक का हाल ध्यान में रखकर रास्ते का हिसाब लगाता है. TRANSIT के लिए, रीयल टाइम में बस, मेट्रो वगैरह का डेटा इस्तेमाल किया जाता है. जैसे, देरी और रद्द होने की जानकारी, जब उपलब्ध हो.

इस वैल्यू से Pro टियर ट्रिगर होगा. साथ ही, बिलिंग की कुल लागत और इंतज़ार का समय बढ़ जाएगा. यह सुविधा सिर्फ़ अनुमति वाली सूची में शामिल ग्राहकों के लिए उपलब्ध है. अगर अनुमति वाली सूची में शामिल नहीं किया जाता है, तो अनुरोध ROUTING_PREFERENCE_TRAFFIC_UNAWARE पर वापस चला जाएगा.

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

ComputeRoutesResponse.

ComputeRoutesResponse

JSON के काेड में दिखाना
{
  "routes": [
    {
      object (Route)
    }
  ]
}
फ़ील्ड
routes[]

object (Route)

इसमें अनुरोध की गई शुरुआत की जगह और मंज़िल के बीच के रास्ते शामिल होते हैं. इन्हें सबसे ज़्यादा सुझाए गए रास्ते से लेकर सबसे कम सुझाए गए रास्ते के क्रम में लगाया जाता है. सिर्फ़ एक रास्ता दिखाया जाता है. हालांकि, अगर ComputeRoutesRequest.compute_alternative_routes को true पर सेट किया जाता है, तो एक से ज़्यादा रास्ते दिखाए जा सकते हैं.

रास्ता

JSON के काेड में दिखाना
{
  "distanceMeters": integer,
  "duration": string,
  "attribution": {
    object (Attribution)
  },
  "encodedPolyline": string,
  "retrievalToken": string
}
फ़ील्ड
distanceMeters

integer

रास्ते की दूरी, मीटर में.

duration

string (Duration format)

रास्ते पर नेविगेट करने में लगने वाला समय.

सेकंड में अवधि, जिसमें नौ फ़्रैक्शनल अंक हो सकते हैं. यह 's' पर खत्म होती है. उदाहरण: "3.5s".

attribution

object (Attribution)

रास्ते के साथ दिखाने के लिए ज़रूरी एट्रिब्यूशन.

encodedPolyline

string

रास्ते की एन्कोड की गई पॉलीलाइन. https://developers.google.com/maps/documentation/utilities/polylinealgorithm देखें

retrievalToken

string

एक टोकन, जिसका इस्तेमाल SearchAlongRoute जैसे डाउनस्ट्रीम टूल में इस खास रास्ते को वापस पाने के लिए किया जा सकता है. यह 10 मिनट के लिए मान्य है.

कुल समय

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

string (int64 format)

समय अवधि के सेकंड. यह -315,576,000,000 से +315,576,000,000 के बीच होना चाहिए. ध्यान दें: इन सीमाओं का हिसाब इस तरह लगाया जाता है: 60 सेकंड/मिनट * 60 मिनट/घंटा * 24 घंटे/दिन * 365.25 दिन/साल * 10,000 साल

nanos

integer

समय की अवधि के नैनोसेकंड रिज़ॉल्यूशन पर, सेकंड के साइन किए गए फ़्रैक्शन. एक सेकंड से कम की अवधि को 0 seconds फ़ील्ड और पॉज़िटिव या नेगेटिव nanos फ़ील्ड से दिखाया जाता है. एक सेकंड या उससे ज़्यादा की अवधि के लिए, nanos फ़ील्ड की वैल्यू शून्य नहीं होनी चाहिए. साथ ही, यह वैल्यू seconds फ़ील्ड की वैल्यू के साइन से मेल खानी चाहिए. यह -999,999,999 से +999,999,999 के बीच होना चाहिए.

एट्रिब्यूशन

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

string

एट्रिब्यूशन के लिए दिखाया जाने वाला टाइटल.

url

string

एट्रिब्यूशन के लिए लिंक किया जाने वाला यूआरएल.

टूल एनोटेशन

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

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

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

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