MCP Tools Reference: mapstools.googleapis.com

টুল: compute_routes

যাত্রা শুরুর স্থান ও গন্তব্যের মধ্যে ভ্রমণের রুট গণনা করে, ঐচ্ছিকভাবে মধ্যবর্তী স্টপের মাধ্যমে। প্রতিটি রুটের দূরত্ব ও সময়কাল দেখায়।

ইনপুট সংক্রান্ত প্রয়োজনীয়তা (গুরুত্বপূর্ণ):

  1. origin এবং destination (অবজেক্ট - বাধ্যতামূলক): প্রতিটি অবশ্যই নিম্নলিখিতগুলির মধ্যে ঠিক একটি ব্যবহার করে প্রদান করতে হবে:

    • address (স্ট্রিং, যেমন, 'Eiffel Tower, Paris')। নামযুক্ত জায়গা, ল্যান্ডমার্ক ও ব্যবসা সরাসরি সমাধান করা হয়, তাই কোনও ওয়েপয়েন্ট জিওকোড করার জন্য প্রথমে search_places কল করবেন না। ব্যবহারকারীর উল্লেখ করা যেকোনও শহর, অঞ্চল বা দেশ অন্তর্ভুক্ত করুন।
    • lat_lng (অবজেক্ট, {"latitude": number, "longitude": number})।
    • place_id (স্ট্রিং, যেমন, 'ChIJOwE_Id1w5EAR4Q27FkL6T_0'), উদাহরণস্বরূপ search_places থেকে।
  2. intermediate_waypoints (অবজেক্টের অ্যারে - ঐচ্ছিক): যাত্রা শুরুর স্থান ও গন্তব্যের মধ্যে, ক্রমানুসারে, সর্বাধিক ১০টি স্টপ। origin-এর মতো একই ফর্ম্যাট। TRANSIT-এর সাথে কাজ করে না। ব্যবহারকারী যেসব স্টপের জন্য অনুরোধ করেছেন শুধুমাত্র সেগুলিই অন্তর্ভুক্ত করুন।

  3. travel_mode (enum - ঐচ্ছিক): DRIVE (ডিফল্ট), WALK, BICYCLE অথবা TRANSIT।

  4. সময় (ঐচ্ছিক - সর্বাধিক একটি সেট করুন): UTC অফসেট সহ RFC 3339 টাইমস্ট্যাম্প, যেমন, '2026-09-19T08:00:00-07:00'। ডিফল্ট হিসেবে এখন ছাড়ার সময় সেট করা থাকে। TRANSIT-এর জন্য, সময়টি অতীতে সর্বাধিক ৭ দিন বা ভবিষ্যতে সর্বাধিক ১০০ দিন হতে পারে। অন্যান্য মোডের ক্ষেত্রে, সময় ভবিষ্যতের ৩৬৫ দিন পর্যন্ত হতে পারে এবং অতীতের হলে চলবে না।

    • departure_time: ব্যবহারকারী কখন রওনা দেবেন তা উল্লেখ করলে এটি ব্যবহার করুন (যেমন, "আগামীকাল সকাল ৮টায়")।
    • arrival_time: ব্যবহারকারী কখন পৌঁছাবেন তা উল্লেখ করলে এটি ব্যবহার করুন (যেমন, "সকাল ৯টার মধ্যে পৌঁছাতে হবে")।
  5. routing_preference (enum - ঐচ্ছিক):

    • ROUTING_PREFERENCE_TRAFFIC_UNAWARE (ডিফল্ট): লাইভ ট্রাফিক, ঘটনা এবং রাস্তা বন্ধের তথ্য উপেক্ষা করে। সবচেয়ে কম লেটেন্সি।
    • ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: উপলভ্য থাকলে লাইভ ট্রাফিক পরিস্থিতি ব্যবহার করে। WALK বা BICYCLE-এর জন্য কাজ করে না। ব্যবহারকারী ট্রাফিক, যানজট বা ট্রাফিক-অ্যাডজাস্ট করা ETA সম্পর্কে জিজ্ঞাসা করলে তবেই এটি সেট করুন। এতে বেশি খরচ ও লেটেন্সি হয়।
  6. location_bias (অবজেক্ট - ঐচ্ছিক): {"latitude": number, "longitude": number} ওয়েপয়েন্ট অ্যাড্রেসে জায়গার নাম দ্ব্যর্থহীন করতে ব্যবহার করা হয়। কোনও নাম অস্পষ্ট হলে (যেমন, "Springfield") এবং ব্যবহারকারী কোনও অঞ্চল উল্লেখ না করলে, address-এ যেমন নাম দেওয়া আছে তেমনই রাখুন এবং কোনও অঞ্চল অনুমান করার পরিবর্তে location_bias-কে অভিপ্রেত এলাকার দিকে সেট করুন।

  7. compute_alternative_routes (বুলিয়ান - ঐচ্ছিক): ব্যবহারকারী রুটের বিকল্প বা অল্টারনেটিভ চাইলে তবেই true-এ সেট করুন। ডিফল্ট হিসেবে false সেট করা থাকে, যা শুধু সাজেস্ট করা রুট দেখায়।

  8. include_polyline (বুলিয়ান - ঐচ্ছিক): শুধুমাত্র রুট জিওমেট্রি (encoded_polyline) প্রয়োজন হলে true-এ সেট করুন। ডিফল্ট হিসেবে false সেট করা থাকে।

টুল কলের জন্য নির্দেশাবলী:

  • শুরু বা গন্তব্যের জায়গা উল্লেখ করা না থাকলে, টুল কল করার আগে আপনাকে অবশ্যই ব্যবহারকারীকে স্পষ্ট করে বলতে হবে।
  • "B থেকে A কত দূরে?" প্রশ্নের জন্য, B-কে origin এবং A-কে destination হিসেবে ব্যবহার করুন।

টুল কলের উদাহরণ: {"origin":{"address":"আইফেল টাওয়ার"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"লুভর মিউজিয়াম"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}

উত্তরের জন্য নির্দেশাবলী:

  • বিকল্প রুটের অনুরোধ করা হলে, সবচেয়ে বেশি থেকে সবচেয়ে কম সাজেস্ট করা রুট হিসেবে সেগুলি সাজানো হয়।
  • routes খালি থাকলে, ব্যবহারকারীকে বলো যে কোনও রুট খুঁজে পাওয়া যায়নি। কোনও রুট অনুমান করবেন না।
  • টুল থেকে পাওয়া ফ্যাক্টগুলিই শুধু উল্লেখ করো। এক এক করে দিকনির্দেশ, ট্রানজিট লাইন, স্টেশন, প্ল্যাটফর্ম বা ট্রান্সফার সংক্রান্ত তথ্য নিজে থেকে তৈরি করবেন না।
  • গ্রাউন্ডেড আউটপুট অবশ্যই প্রতিটি রুটের attribution ফিল্ড ব্যবহার করে সোর্সের সাথে অ্যাট্রিবিউট করতে হবে, যখন উপলভ্য থাকে।

compute_routes MCP টুল কল করার জন্য কীভাবে curl ব্যবহার করতে হয় তা নিম্নলিখিত কোড স্যাম্পেল থেকে জানতে পারবেন।

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)

ঐচ্ছিক। যাত্রা শুরুর স্থান ও গন্তব্যের মধ্যে যে স্টপেজগুলি আছে, সেগুলি ক্রমানুসারে দেখানো হয়েছে। সর্বাধিক ১০টি মধ্যবর্তী ওয়েপয়েন্ট কাজ করে। 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

ঐচ্ছিক। সাজেস্ট করা রুট ছাড়াও বিকল্প রুট গণনা করা হবে কিনা। ডিফল্ট হিসেবে false সেট করা থাকে, সেক্ষেত্রে শুধু সাজেস্ট করা রুট দেখানো হয়। 'সত্য' হিসেবে সেট করা হলে, উপলভ্য সব রুট দেখানো হয়, যদিও প্রতিটি অনুরোধের জন্য বিকল্প উপলভ্য নাও হতে পারে।

timing ফিল্ড একত্রিত করুন। যাত্রা শুরু করার জায়গা থেকে কখন রওনা দিতে হবে বা গন্তব্যে কখন পৌঁছাতে হবে তা উল্লেখ করে। উল্লেখ করা না থাকলে, ডিফল্ট হিসেবে বর্তমান সময়ে রওনা হওয়ার কথা বলা হয়। TRANSIT-এর জন্য, সময়টি অবশ্যই অতীতে সর্বাধিক ৭ দিন এবং ভবিষ্যতে সর্বাধিক ১০০ দিন হতে হবে। অন্যান্য ট্রাভেল মোডের ক্ষেত্রে, সময়টি অবশ্যই অতীতের হতে পারবে না এবং ভবিষ্যতে সর্বাধিক ৩৬৫ দিনের হতে হবে। timing শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
departureTime

string (Timestamp format)

ঐচ্ছিক। এটি ইঙ্গিত করে যে রুটটি ছাড়ার সময়ের উপর ভিত্তি করে গণনা করা উচিত।

RFC 3339 ব্যবহার করে, যেখানে জেনারেট করা আউটপুট সবসময় Z-নরমালাইজড হবে এবং ০, ৩, ৬ বা ৯টি ভগ্নাংশ সংখ্যা ব্যবহার করবে। "Z" ছাড়া অন্যান্য অফসেটও গ্রহণ করা হয়। যেমন: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" বা "2014-10-02T15:01:23+05:30"।

arrivalTime

string (Timestamp format)

ঐচ্ছিক। এটি দেখায় যে পৌঁছানোর সময়ের উপর ভিত্তি করে রুট গণনা করা উচিত।

RFC 3339 ব্যবহার করে, যেখানে জেনারেট করা আউটপুট সবসময় Z-নরমালাইজড হবে এবং ০, ৩, ৬ বা ৯টি ভগ্নাংশ সংখ্যা ব্যবহার করবে। "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 থেকে UTC সময়ের সেকেন্ড দেখায়। অবশ্যই -৬২১৩৫৫৯৬৮০০ এবং ২৫৩৪০২৩০০৭৯৯-এর মধ্যে হতে হবে (যা 0001-01-01T00:00:00Z থেকে 9999-12-31T23:59:59Z-এর সাথে সম্পর্কিত)।

nanos

integer

ন্যানোসেকেন্ড রেজোলিউশনে সেকেন্ডের অ-ঋণাত্মক ভগ্নাংশ। এই ফিল্ডটি সময়সীমার ন্যানোসেকেন্ড অংশ, সেকেন্ডের বিকল্প নয়। ভগ্নাংশ সহ নেগেটিভ সেকেন্ড ভ্যালুতে এখনও নন-নেগেটিভ ন্যানো ভ্যালু থাকতে হবে যা সময়ের সাথে সাথে গণনা করা হয়। ০ থেকে ৯৯৯,৯৯৯,৯৯৯-এর মধ্যে হতে হবে।

Waypoint

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

মানুষের-পঠনযোগ্য ঠিকানা বা প্লাস কোড। আরও তথ্যের জন্য https://plus.codes দেখুন।

LatLng

JSON উপস্থাপনা
{
  "latitude": number,
  "longitude": number
}
ফিল্ড
latitude

number

ডিগ্রিতে অক্ষাংশ। এটি অবশ্যই [-৯০.০, +৯০.০] রেঞ্জের মধ্যে হতে হবে।

longitude

number

ডিগ্রিতে দ্রাঘিমাংশ। এটি অবশ্যই [-১৮০.০, +১৮০.০] রেঞ্জের মধ্যে হতে হবে।

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-এর মান সত্য হিসেবে সেট করা না থাকলে, শুধুমাত্র একটি রুট দেখানো হয়।

রুট

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-এর মতো ডাউনস্ট্রিম টুলে এই নির্দিষ্ট রুট ফিরিয়ে আনতে ব্যবহার করা যেতে পারে। ১০ মিনিট পর্যন্ত কার্যকর থাকবে।

সময়সীমা

JSON উপস্থাপনা
{
  "seconds": string,
  "nanos": integer
}
ফিল্ড
seconds

string (int64 format)

সময়ের ব্যাপ্তির সাইন করা সেকেন্ড। -৩১৫,৫৭৬,০০০,০০০ থেকে +৩১৫,৫৭৬,০০০,০০০-এর মধ্যে হতে হবে। মনে রাখবেন: এই সীমাগুলি এইভাবে গণনা করা হয়: ৬০ সেকেন্ড/মিনিট * ৬০ মিনিট/ঘণ্টা * ২৪ ঘণ্টা/দিন * ৩৬৫.২৫ দিন/বছর * ১০০০০ বছর

nanos

integer

সময়ের ব্যাপ্তির ন্যানোসেকেন্ড রেজোলিউশনে সেকেন্ডের সাইন করা ভগ্নাংশ। এক সেকেন্ডের কম সময়কে 0 seconds ফিল্ড এবং পজিটিভ বা নেগেটিভ nanos ফিল্ড দিয়ে দেখানো হয়। এক সেকেন্ড বা তার বেশি সময়সীমার জন্য, nanos ফিল্ডের শূন্য নয় এমন ভ্যালু অবশ্যই seconds ফিল্ডের মতো একই চিহ্ন হতে হবে। -৯৯৯,৯৯৯,৯৯৯ থেকে +৯৯৯,৯৯৯,৯৯৯-এর মধ্যে হতে হবে।

অ্যাট্রিবিউশন

JSON উপস্থাপনা
{
  "title": string,
  "url": string
}
ফিল্ড
title

string

অ্যাট্রিবিউশনের জন্য দেখানোর শীর্ষক।

url

string

অ্যাট্রিবিউশনের জন্য লিঙ্ক করার URL।

টুল অ্যানোটেশন

প্রদত্ত টুলের প্রাথমিক ঝুঁকি বর্ণনা করার জন্য MCP ক্লায়েন্টদের টুল অ্যানোটেশন পাঠানো হয়। বেশিরভাগ ক্লায়েন্ট এইসব ইঙ্গিতকে বিশ্বাসযোগ্য বলে মনে করে না, তবে ব্যবহারকারীকে কখন কনফার্মেশন প্রম্পট পাঠানো হবে তা নির্ধারণ করতে এগুলি ব্যবহার করা যেতে পারে।

টাইটেল স্ট্রিংয়ের সাথে, নিম্নলিখিত বুলিয়ান হিন্ট এইভাবে সংজ্ঞায়িত করা হয়:

  • readOnlyHint: সত্য হলে, টুলটি তার পরিবেশ পরিবর্তন করে না। ডিফল্ট: false.
  • destructiveHint: সত্য হলে, টুলটি ধ্বংসাত্মক অ্যাকশন করতে পারে। মিথ্যা হলে, টুলটি শুধুমাত্র যোগ করার অ্যাকশন করতে পারে। ডিফল্ট: true.
  • idempotentHint: সত্য হলে, একই আর্গুমেন্ট সহ টুলটিকে বারবার কল করলে এর এনভায়রনমেন্টে কোনও অতিরিক্ত প্রভাব পড়বে না। ডিফল্ট: false.
  • openWorldHint: সত্য হলে, টুলটি এক্সটার্নাল এন্টিটির 'মুক্ত পৃথিবী'-র সাথে ইন্টার‍্যাক্ট করতে পারে। মিথ্যা হলে, টুলটি শুধুমাত্র অভ্যন্তরীণ এন্টিটির সাথে ইন্টার‍্যাক্ট করতে পারে। যেমন, ওয়েব সার্চ টুল ওপেন ওয়ার্ল্ড হলেও মেমরি টুল ওপেন ওয়ার্ল্ড নয়।

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