MCP Reference: mapstools.googleapis.com

এটি Maps Experience agent tools-এর মাধ্যমে প্রদান করা MCP সার্ভার। Google Maps Platform-এর উপরে LLM অ্যাপ্লিকেশন তৈরি করার জন্য সার্ভার ডেভেলপারদের টুল প্রদান করে।

মডেল কন্টেক্সট প্রোটোকল (MCP) সার্ভার, লার্জ ল্যাঙ্গুয়েজ মডেল (LLM) বা AI অ্যাপ্লিকেশনকে কন্টেক্সট, ডেটা বা ক্ষমতা প্রদান করে এমন কোনও এক্সটার্নাল পরিষেবার মধ্যে প্রক্সি হিসেবে কাজ করে। MCP সার্ভার AI অ্যাপ্লিকেশনকে ডেটাবেস ও ওয়েব পরিষেবার মতো এক্সটার্নাল সিস্টেমের সাথে কানেক্ট করে এবং তাদের উত্তর এমন ফর্ম্যাটে অনুবাদ করে যা AI অ্যাপ্লিকেশন বুঝতে পারে।

সার্ভার সেটআপ

ব্যবহার করার আগে আপনাকে অবশ্যই MCP সার্ভার চালু করতে এবং যাচাইকরণ সেট-আপ করতে হবে। Google এবং Google Cloud রিমোট MCP সার্ভার ব্যবহার করার ব্যাপারে আরও তথ্য পেতে, Google Cloud MCP সার্ভার এক নজরে দেখুন।

সার্ভার এন্ডপয়েন্ট

MCP সার্ভিস এন্ডপয়েন্ট হল MCP সার্ভারের নেটওয়ার্ক অ্যাড্রেস ও কমিউনিকেশন ইন্টারফেস (সাধারণত একটি URL) যা কোনও AI অ্যাপ্লিকেশন (MCP ক্লায়েন্টের জন্য হোস্ট) একটি সুরক্ষিত, স্ট্যান্ডার্ড কানেকশন তৈরি করতে ব্যবহার করে। এটি হল LLM-এর জন্য প্রসঙ্গ অনুরোধ করা, কোনও টুল কল করা বা কোনও রিসোর্স অ্যাক্সেস করার জন্য যোগাযোগের পয়েন্ট।

Maps Experience agent tools MCP সার্ভারে নিম্নলিখিত গ্লোবাল MCP এন্ডপয়েন্ট আছে:

  • https://mapstools.googleapis.com/mcp

MCP টুল

MCP টুল হল একটি ফাংশন বা এক্সিকিউটেবল ক্ষমতা যা একটি MCP সার্ভার LLM বা AI অ্যাপ্লিকেশনের কাছে প্রকাশ করে যাতে বাস্তব জগতে কোনও অ্যাকশন পারফর্ম করা যায়।

টুল

mapstools.googleapis.com MCP সার্ভারে নিম্নলিখিত টুল আছে:

MCP টুল
search_places

ব্যবহারকারী জায়গা, ব্যবসা, ঠিকানা, লোকেশন, আকর্ষণীয় স্থান বা Google Maps সম্পর্কিত অন্য কোনও সার্চ করার অনুরোধ করলে এই টুল কল করুন।

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

  1. text_query (স্ট্রিং - বাধ্যতামূলক): প্রাথমিক সার্চ কোয়েরি। ব্যবহারকারী কী খুঁজছেন তা স্পষ্টভাবে উল্লেখ করতে হবে।

    • উদাহরণ: 'restaurants in New York', 'coffee shops near Golden Gate Park', 'SF MoMA', '1600 Amphitheatre Pkwy, Mountain View, CA, USA', 'pets friendly parks in Manhattan, New York', 'date night restaurants in Chicago', 'accessible public libraries in Los Angeles'.
    • নির্দিষ্ট জায়গার বিবরণের জন্য: অনুরোধ করা অ্যাট্রিবিউট (যেমন, 'Google Store Mountain View opening hours', 'SF MoMa phone number', 'Shoreline Park Mountain View address') যোগ করুন।
  2. location_bias (অবজেক্ট - ঐচ্ছিক): কোনও নির্দিষ্ট ভৌগোলিক এলাকার কাছাকাছি ফলাফলকে অগ্রাধিকার দিতে এটি ব্যবহার করুন।

    • ফর্ম্যাট: {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • ব্যবহার:
      • ৫ কিমি ব্যাসার্ধের মধ্যে পক্ষপাতিত্ব করতে: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • কেন্দ্রবিন্দুর দিকে বেশি পক্ষপাতিত্ব করতে: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}} (radius_meters বাদ দিয়ে)।
  3. language_code (string - OPTIONAL): যে ভাষায় সার্চ ফলাফলের সারসংক্ষেপ দেখানো হবে।

    • ফর্ম্যাট: দুই অক্ষরের ভাষা কোড (ISO 639-1), ঐচ্ছিকভাবে এর পরে একটি আন্ডারস্কোর এবং দুই অক্ষরের দেশের কোড (ISO 3166-1 alpha-2), যেমন, en, ja, en_US, zh_CN, es_MX। ভাষা কোড প্রদান করা না হলে, ফলাফল ইংরেজিতে হবে।
  4. region_code (string - OPTIONAL): ব্যবহারকারীর ইউনিকোড CLDR অঞ্চল কোড। এই প্যারামিটারটি জায়গার বিবরণ দেখানোর জন্য ব্যবহার করা হয়, যেমন অঞ্চল-নির্দিষ্ট জায়গার নাম, যদি উপলভ্য থাকে। প্রযোজ্য আইনের ভিত্তিতে প্যারামিটার ফলাফলে প্রভাব ফেলতে পারে।

    • ফর্ম্যাট: দুই অক্ষরের দেশের কোড (ISO 3166-1 alpha-2), যেমন, US, CA।
  5. page_size (পূর্ণসংখ্যা - ঐচ্ছিক): 1 থেকে 10 পর্যন্ত সর্বাধিক যতগুলি জায়গা দেখানো হবে। ডিফল্ট হিসেবে 5 সেট করা থাকে। ব্যবহারকারী ৫টির বেশি জায়গা তুলনা করতে চাইলে তবেই 5-এর বেশি সেট করুন; 6 থেকে 10 পর্যন্ত ভ্যালুর জন্য বেশি খরচ ও বেশি লেটেন্সি হয়।

  6. include_extended_details (বুলিয়ান - ঐচ্ছিক): ব্যবহারকারীর অনুরোধে সমৃদ্ধ গুণগত ইনসাইট, রিয়েল-টাইম ডায়নামিক্স বা বিশেষ এন্টিটি অ্যাট্রিবিউটের প্রয়োজন হলে এই ফিল্ড true-এ সেট করুন। ডিফল্ট হিসেবে false সেট করা থাকে। এটি true-এ সেট করলে বেশি খরচ ও লেটেন্সি হয়।

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

  • লোকেশন সংক্রান্ত তথ্য (গুরুত্বপূর্ণ): সার্চে পর্যাপ্ত লোকেশন সংক্রান্ত তথ্য থাকতে হবে। লোকেশন অস্পষ্ট হলে (যেমন, শুধু "পিৎজা খাওয়ার জায়গা"), আপনাকে অবশ্যই text_query-এ এটি নির্দিষ্ট করতে হবে (যেমন, "নিউ ইয়র্কে পিৎজা খাওয়ার জায়গা") অথবা location_bias প্যারামিটার ব্যবহার করতে হবে। অস্পষ্টতা দূর করার জন্য প্রয়োজন হলে শহর, রাজ্য/প্রদেশ এবং অঞ্চল/দেশের নাম অন্তর্ভুক্ত করুন।

  • সব সময় সবচেয়ে নির্দিষ্ট ও প্রাসঙ্গিক text_query প্রদান করুন।

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

  • গ্রাউন্ডেড আউটপুট অবশ্যই সোর্সের সাথে অ্যাট্রিবিউট করতে হবে, এর জন্য attribution ফিল্ড থেকে তথ্য ব্যবহার করতে হবে, যদি তা উপলভ্য থাকে।

lookup_weather কোনও লোকেশনের জন্য আবহাওয়া, এয়ার কোয়ালিটি (AQI ও দূষণকারী পদার্থ) এবং পরাগ (গাছ, ঘাস, আগাছা ও উদ্ভিদ প্রজাতির অ্যালার্জেন লেভেল) সহ বিস্তারিত পরিবেশগত তথ্য সংগ্রহ করে: বর্তমান পরিস্থিতি, প্রতি ঘণ্টার পূর্বাভাস/ইতিহাস এবং আবহাওয়া ও এয়ার কোয়ালিটির দৈনিক পূর্বাভাস; পরাগ শুধুমাত্র দৈনিক পূর্বাভাস (আজ থেকে +৪ দিন, প্রতি ঘণ্টার বা অতীতের কোনও ডেটা নেই)। উপলভ্য এনভায়রনমেন্টাল ডোমেন ও ক্ষমতা (capabilities: WEATHER, AIR_QUALITY, POLLEN — ক্রিটিক্যাল): * বাধ্যতামূলক স্পষ্ট নির্বাচন: আপনাকে প্রতিটি কলে capabilities-এ WEATHER, AIR_QUALITY বা POLLEN-এর মধ্যে অন্তত একটি অবশ্যই অন্তর্ভুক্ত করতে হবে। capabilities বাদ দেওয়ার অনুমতি নেই। * ব্রড / অস্পষ্ট আউটডোর কোয়েরি (সম্পূর্ণ অ্যাম্বিয়েন্ট আউটডোর স্যুট): ব্যবহারকারী যদি কোনও নির্দিষ্ট ডোমেনে সীমাবদ্ধ না থেকে সাধারণ আউটডোর, ভ্রমণ বা পরিস্থিতিগত প্রশ্ন জিজ্ঞাসা করেন (যেমন, "দৌড়ানোর জন্য এখন আউটডোর পরিস্থিতি কেমন?"), তাহলে সম্পূর্ণ অ্যাম্বিয়েন্ট আউটডোর স্যুট (আবহাওয়া + এয়ার কোয়ালিটি + পরাগ) দেখানোর জন্য স্পষ্টভাবে তিনটি ক্ষমতা অন্তর্ভুক্ত করুন (capabilities: ["WEATHER", "AIR_QUALITY", "POLLEN"]); অতীতের date/hour-এর জন্য, POLLEN বাদ দিন, যার কোনও ইতিহাস নেই। টার্গেট করা ডোমেন বেছে নেওয়া (নির্দিষ্ট কোয়েরি): ব্যবহারকারী যদি নির্দিষ্টভাবে শুধুমাত্র একটি বা দুটি ডোমেন সম্পর্কে জানতে চান (যেমন, "সিয়াটেলে এখন AQI কত?"), তাহলে শুধুমাত্র অনুরোধ করা ক্ষমতা (WEATHER, AIR_QUALITY এবং/অথবা POLLEN) অন্তর্ভুক্ত করুন। শুধুমাত্র অনুরোধ করা ডোমেন(গুলি) এক্সিকিউট করা হবে এবং ফলাফল দেখানো হবে। ডোমেন অনুযায়ী নির্দিষ্ট ডেটা উপলভ্য: * আবহাওয়া (weather): তাপমাত্রা (বর্তমান, কেমন অনুভূত হচ্ছে, সর্বাধিক/সর্বনিম্ন, হিট ইন্ডেক্স), বাতাস (গতি, দমকা হাওয়া, দিক), মহাজাগতিক ঘটনা (সূর্যোদয়/সূর্যাস্ত, চাঁদের দশা), বৃষ্টিপাত (ধরন, সম্ভাবনা, পরিমাণ/QPF) এবং বায়ুমণ্ডলীয় অবস্থা (UV ইন্ডেক্স, আর্দ্রতা, মেঘের আচ্ছাদন, বজ্রপাতের সম্ভাবনা, বায়ুর চাপ)। * এয়ার কোয়ালিটি (air_quality): ইউনিভার্সাল ও স্থানীয় এয়ার কোয়ালিটি ইন্ডেক্স (AQI ভ্যালু, বিভাগ, প্রধান দূষণকারী), ৭টি সংবেদনশীল গ্রুপ জুড়ে স্বাস্থ্য সংক্রান্ত সাজেশন এবং দূষণকারীর ঘনত্ব (include_pollutant_concentration: true)। প্রতিটি ইন্ডেক্সের নিজস্ব প্রধান দূষণকারী আছে; প্রতিটি ইন্ডেক্স অনুযায়ী এটি রিপোর্ট করুন (যেমন, মার্কিন যুক্তরাষ্ট্রের AQI-এর জন্য ইউনিভার্সাল AQI-এর দূষণকারী দেবেন না)। * পরাগ (pollen): গাছ, ঘাস ও আগাছার বিভাগ এবং উদ্ভিদের প্রজাতি (index.value এর সাথে index.category, যেমন ১ = "খুব কম"), ইন-সিজন স্ট্যাটাস, ক্রস-রিঅ্যাকশন এবং স্বাস্থ্য সংক্রান্ত সাজেশন অনুযায়ী দৈনিক ইউনিভার্সাল পোলেন ইনডেক্স (UPI, ০–৫)। * পরাগ সংক্রান্ত ফিল্ড নেই: in_season না থাকার অর্থ হল, এটি সিজন নয়। ব্যবহারকারী যদি সেই উদ্ভিদ সম্পর্কে জিজ্ঞাসা না করেন, তাহলে index ছাড়া ফিরে আসা উদ্ভিদের প্রজাতি বাদ দিন; তারপর বলুন যে আজ এটির জন্য কোনও পরাগের ডেটা রিপোর্ট করা হয়নি (লেভেল অনুমান করবেন না)। লোকেশন সংক্রান্ত নিয়ম (গুরুত্বপূর্ণ): টার্গেট লোকেশন অবশ্যই location-এ উল্লেখ করতে হবে এবং এর জন্য নিম্নলিখিত oneof সাব-ফিল্ডের মধ্যে শুধুমাত্র একটি ব্যবহার করতে হবে: ১. ভৌগোলিক স্থানাঙ্ক (lat_lng): * সঠিক অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক জানা থাকলে ব্যবহার করুন। * উদাহরণ: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} ২। প্লেস আইডি (place_id): * একটি দ্ব্যর্থহীন Google Maps প্লেস আইডি (যেমন, search_places বা resolve_names থেকে প্রাপ্ত)। * উদাহরণ: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} ৩. ঠিকানার স্ট্রিং (address): * শহর/অঞ্চল, আশেপাশের এলাকা, ল্যান্ডমার্ক বা দর্শনীয় স্থান, রাস্তার ঠিকানা বা পিন কোড, আদর্শগতভাবে শহর/দেশের সাথে। * উদাহরণ: {"location": {"address": "Paris, France"}} সময় ও ব্যবহার মোড (date এবং hour — ক্রিটিক্যাল): * স্থানীয় টাইমজোন রেফারেন্স: সব date ({year, month, day}) এবং hour (0-23) ইনপুট অবশ্যই অনুরোধ করা location-এর স্থানীয় সিভিল টাইমজোনে (যেমন, "Paris tomorrow at 13:00"-এর জন্য কোয়েরি Europe/Paris স্থানীয় তারিখ ও ঘণ্টা 13 ব্যবহার করে) প্রকাশ করতে হবে, কখনও UTC বা কলারের টাইমজোনে নয়। * ১. বর্তমান শর্ত (date বাদ দেওয়া হয়েছে এবং hour বাদ দেওয়া হয়েছে): * location এবং টার্গেট capabilities (WEATHER, AIR_QUALITY, POLLEN) প্রদান করুন। date বা hour নির্দিষ্ট করবেন না। * অনুরোধ করা ডোমেনের (বর্তমান আবহাওয়া, বর্তমান-ঘণ্টার এয়ার কোয়ালিটি এবং/অথবা আজকের পরাগের পূর্বাভাস) জন্য রিয়েল-টাইম বর্তমান পরিস্থিতি (CC) দেখায়। * এয়ার কোয়ালিটি-এর জন্য, বর্তমান পরিস্থিতি হল এক ঘণ্টা: আজ-এর এয়ার কোয়ালিটি বা আউটডোর সংক্রান্ত প্রশ্নের উত্তর দিতে এটি একা ব্যবহার করবেন না (নিচে দেওয়া দৈনিক কোয়েরি ব্যবহার করুন)। ২. প্রতি ঘণ্টার পূর্বাভাস / ইতিহাস (date উল্লেখ করা হয়েছে এবং hour উল্লেখ করা হয়েছে 0-23): * location, date ({year, month, day}), hour (0-23) এবং টার্গেট capabilities প্রদান করুন। মিনিট উল্লেখ করা থাকলে, নিকটবর্তী ঘণ্টায় পরিবর্তন করুন। * গুরুত্বপূর্ণ সীমাবদ্ধতা (hour সেট করা থাকলে date প্রয়োজন): date ছাড়া hour প্রদান করা (date বাদ দেওয়া হয়েছে, hour সেট করা হয়েছে) অনুমোদিত নয় এবং এটি করলে সমস্যা হবে। এমনকি ব্যবহারকারী আজ কোনও নির্দিষ্ট সময় (যেমন, "at 13:00 today") সম্পর্কে জিজ্ঞাসা করলেও, আপনাকে date (location-এ আজকের তারিখ) এবং hour, দুটিই অবশ্যই পূরণ করতে হবে। * YYYY-MM-DD-HH-এ অনুরোধ করা আবহাওয়া এবং/অথবা এয়ার কোয়ালিটির জন্য প্রতি ঘণ্টায় লুকআপ এবং YYYY-MM-DD-এ অনুরোধ করা পরাগের জন্য দৈনিক লুকআপ কার্যকর করে। * আবহাওয়া "কখন" সংক্রান্ত প্রশ্ন: আবহাওয়া সংক্রান্ত প্রশ্নের জন্য কখন / কোন সময় / সেরা সময় (যেমন, "what time will it stop raining?") জিজ্ঞাসা করা হলে, প্রাসঙ্গিক সময়ের জন্য প্রতি ঘণ্টায় WEATHER কল (date + hour) ব্যবহার করুন। দৈনিক আবহাওয়ার পূর্বাভাসে প্রতি ঘণ্টার ভ্যালু থাকে না। বাইরের পরিবেশের "কখন / সেরা সময়" সংক্রান্ত প্রশ্নের (যেমন, "when is the best time to go walking today?") জন্য, দৈনিক কোয়েরির অধীনে বর্ণিত এয়ার কোয়ালিটি (এবং পরাগ) সংক্রান্ত সারাদিনের কলের পাশাপাশি প্রতি ঘণ্টায় WEATHER কল করুন। * ৩. দৈনিক কোয়েরি (date উল্লেখ করা হয়েছে এবং hour বাদ দেওয়া হয়েছে): * hour বাদ দিয়ে location, date (অনুরোধ করা location-এর স্থানীয় সিভিল টাইম অনুযায়ী {year, month, day}) এবং সারাদিনের কোয়েরির জন্য টার্গেট capabilities (যেমন, "weather and pollen in London tomorrow") প্রদান করুন। * আজকের এয়ার কোয়ালিটি এবং আউটডোর সংক্রান্ত সাধারণ প্রশ্ন: আজকের (যেমন, "how will the air quality change today", "is today a good day for a picnic?") এয়ার কোয়ালিটি সংক্রান্ত প্রশ্ন এবং আউটডোর সংক্রান্ত সাধারণ প্রশ্ন (যার মধ্যে এয়ার কোয়ালিটি অন্তর্ভুক্ত) সম্পর্কে জানতে, দিনের প্রতি ঘণ্টার এয়ার কোয়ালিটি সিরিজ পেতে, date-কে আজকের তারিখের location (ঘণ্টা বাদ দিয়ে) হিসেবে সেট করুন। Current Conditions কল একা শুধু বর্তমান ঘণ্টার এয়ার কোয়ালিটি রিটার্ন করে এবং তা যথেষ্ট নয়; ব্যবহারকারী "এখন" সম্পর্কে জিজ্ঞাসা করলে আপনি একটি যোগ করতে পারেন। * এয়ার কোয়ালিটি টাইম উইন্ডো: একদিনের মধ্যে কোনও উইন্ডো সম্পর্কে এয়ার কোয়ালিটি সংক্রান্ত প্রশ্নের জন্য (যেমন, "air quality between noon and 6 PM"), সেই তারিখের জন্য একটি দৈনিক কল বেছে নিন এবং এয়ার কোয়ালিটি সিরিজ থেকে উইন্ডোর ঘণ্টাগুলি পড়ুন, আলাদা আলাদা ঘণ্টার স্যাম্পেল নেওয়ার পরিবর্তে। আপনি প্রতি ঘণ্টার কল ব্যবহার করলে, উইন্ডোর প্রতি ঘণ্টা কভার করুন। * অনুরোধ করা আবহাওয়া এবং/অথবা পরাগ-এর জন্য দৈনিক পূর্বাভাস এবং সম্পূর্ণ স্থানীয় দিন (স্থানীয় সময় ০০:০০–২৩:০০) কভার করে দিনের প্রতি ঘণ্টার এয়ার কোয়ালিটি সিরিজ রিটার্ন করে: অতীতের তারিখের জন্য ২৪ ঘণ্টার ইতিহাস, ভবিষ্যতের তারিখের জন্য ২৪ ঘণ্টার পূর্বাভাস এবং আজকের জন্য আগের ঘণ্টা (ইতিহাস), বর্তমান ঘণ্টা এবং বাকি ঘণ্টা (পূর্বাভাস)। ডোমেন অনুযায়ী কাজ করার সময়সীমা: * আবহাওয়া: ২৪ ঘণ্টা আগে থেকে ২৪০ ঘণ্টা (১০ দিন) পর্যন্ত প্রতি ঘণ্টায় (আগের ঘণ্টার জন্য date ও hour দুটোই প্রয়োজন); আজ সহ ১০ দিন পর্যন্ত প্রতিদিন (আজ থেকে +৯ দিন); প্রতিদিনের ইতিহাস নেই। * এয়ার কোয়ালিটি: ৭২০ ঘণ্টা (৩০ দিন) আগে থেকে ৯৬ ঘণ্টা (৪ দিন) পরে পর্যন্ত প্রতি ঘণ্টায়; পুরো দিনের কল অবশ্যই সেই উইন্ডোর মধ্যে ফিট হতে হবে (বাস্তবে আজ −২৯ দিন থেকে +৩ দিন পর্যন্ত)। * পরাগ: শুধুমাত্র দৈনিক, আজ থেকে +৪ দিন (আজকে নিয়ে ৫ দিন); অতীতের কোনও তারিখ নয় এবং hour উপেক্ষা করা হয়। (মনে রাখবেন: একাধিক ক্ষমতার জন্য অনুরোধ করা হলে এবং date/hour সেগুলির কোনও একটি রেঞ্জের বাইরে থাকলে, কলটি এখনও সফল হয় এবং শুধুমাত্র সমর্থিতগুলি ফেরত দেয়।) * রেঞ্জের বাইরে থাকা অনুরোধ: অনুরোধ করা তারিখ বা সময় উপরে উল্লেখ করা ডোমেনের সাপোর্ট করা রেঞ্জের বাইরে থাকলে (যেমন, কোনও পুরনো তারিখের জন্য পরাগ), তবুও অনুরোধ করা তারিখ/সময়ের জন্য lookup_weather কল করুন; সমস্যা সংক্রান্ত স্ট্যাটাসে সাপোর্ট করা রেঞ্জ উল্লেখ করা থাকে। বিকল্প হিসেবে অন্য কোনও তারিখ, সময় বা ডোমেনকে কল করবেন না। ডোমেন বিকল্প ও অ্যাট্রিবিউশন: * ভাষা (language_code): ঐচ্ছিক BCP-47 ভাষা কোড (যেমন, "fr")। ডিফল্ট হিসেবে "en" সেট করা থাকে। * আবহাওয়ার ইউনিট (weather_options.units_system বা units_system): ডিফল্ট হিসেবে METRIC সেট করা থাকে। ব্যবহারকারী মার্কিন যুক্তরাষ্ট্রের স্ট্যান্ডার্ড বা ইম্পিরিয়াল ইউনিটের জন্য অনুরোধ করলে IMPERIAL (ফারেনহাইট/mph) সেট করুন। weather_options.units_system (পছন্দসই) এবং টপ-লেভেল units_system, দুটিতেই কাজ করে; দুটিই উল্লেখ করা থাকলে, তাদের মধ্যে কোনও বিরোধ থাকা চলবে না। * এয়ার কোয়ালিটি সংক্রান্ত বিকল্প (air_quality_options): নির্দিষ্ট দূষণকারী উপাদানের ঘনত্ব (PM2.5, PM10, O3, NO2, SO2, CO) প্রয়োজন হলে include_pollutant_concentration: true সেট করুন; নির্দিষ্ট আঞ্চলিক AQI স্কেলের জন্য অনুরোধ করতে, বিকল্প হিসেবে index_region_code (২-অক্ষরের ISO দেশের কোড, যেমন, "US") সেট করুন। ডিফল্ট হিসেবে, উত্তরে ইউনিভার্সাল AQI এবং লোকেশনের আঞ্চলিক AQI অন্তর্ভুক্ত থাকে। * অ্যাট্রিবিউশন: গ্রাউন্ডেড আউটপুট অবশ্যই প্রতিটি রিটার্ন করা ডোমেন কন্টেনারের (weather.attribution, air_quality.attribution, pollen.attribution) মধ্যে attribution ফিল্ড ব্যবহার করে সোর্সে অ্যাট্রিবিউট করতে হবে। * রিটার্ন করা সময়: এয়ার কোয়ালিটি date_time ভ্যালু আগে থেকেই লোকেশনের স্থানীয় সময়ে (utc_offset অন্তর্ভুক্ত) থাকে; সেগুলি যেমন আছে তেমনই দেখান। আবহাওয়ার date_time (বর্তমান ও প্রতি ঘণ্টা) এবং সূর্যোদয়/সূর্যাস্তের সময় UTC-তে থাকে; time_zone ব্যবহার করে সেগুলি লোকেশনের স্থানীয় সময়ে পরিবর্তন করুন। সব সময় স্থানীয় হিসেবে লেবেল করুন।
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 - OPTIONAL): 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 সেট করা থাকে।

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

  • শুরু বা গন্তব্যের জায়গা উল্লেখ করা না থাকলে, টুল কল করার আগে আপনাকে অবশ্যই ব্যবহারকারীকে স্পষ্ট করে বলতে হবে।
  • "খ থেকে ক কত দূরে?" প্রশ্নের জন্য, খ-কে origin এবং ক-কে 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 খালি থাকলে, ব্যবহারকারীকে বলো যে কোনও রুট খুঁজে পাওয়া যায়নি। কোনও রুট অনুমান করবেন না।
  • DRIVE রুট বরাবর জায়গা খুঁজতে, রুটের retrieval_token থেকে search_along_route-এ পাস করুন। টোকেনটি ১০ মিনিট পর্যন্ত কার্যকর থাকবে।
  • টুল থেকে পাওয়া তথ্যই শুধু উল্লেখ করো। এক এক করে দিকনির্দেশ, ট্রানজিট লাইন, স্টেশন, প্ল্যাটফর্ম বা ট্রান্সফার সংক্রান্ত তথ্য নিজে থেকে তৈরি করবেন না।
  • গ্রাউন্ডেড আউটপুট অবশ্যই প্রতিটি রুটের attribution ফিল্ড ব্যবহার করে সোর্সের সাথে অ্যাট্রিবিউট করতে হবে, যখন উপলভ্য থাকে।
search_along_route

ব্যবহারকারী কোনও ভ্রমণ রুটে (যেমন, "তাহো যাওয়ার পথে পেট্রোল পাম্প", "এসএফ এবং সান জোসের মধ্যে কফি শপ") জায়গা, ব্যবসা বা দর্শনীয় স্থান খুঁজতে চাইলে এই টুলটি কল করুন। এই টুল কল করলে search_places-এর থেকে বেশি খরচ হয়, তাই কোনও রুটের পরিবর্তে একটি লোকেশনের কাছাকাছি সার্চ করার সময় search_places ব্যবহার করুন।

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

  1. text_query (স্ট্রিং - বাধ্যতামূলক): রুট বরাবর কী সার্চ করতে হবে তার ন্যাচারাল ল্যাঙ্গুয়েজ বিবরণ।

    • উদাহরণ: 'ev chargers', 'coffee', 'vegetarian restaurants', 'rest stops'.
  2. রুটের বিবরণ (বাধ্যতামূলক - নিম্নলিখিতগুলির মধ্যে ঠিক একটি প্রদান করুন):

    • retrieval_token (স্ট্রিং): DRIVE রুটের জন্য আগের compute_routes কলের মাধ্যমে ফেরত আসা retrieval_token। রুট আগে থেকেই গণনা করা থাকলে এটি বেছে নিন। টোকেনটি ১০ মিনিট পর্যন্ত কার্যকর থাকবে।
    • route_endpoints (অবজেক্ট): রুটের origin এবং destination। address, lat_lng বা place_id-এর মধ্যে যেকোনও একটি ব্যবহার করে প্রতিটি প্রদান করতে হবে।
      • উদাহরণ: {"route_endpoints": {"origin": {"address": "San Francisco, CA"}, "destination": {"address": "Lake Tahoe, CA"}}}
    • encoded_polyline (স্ট্রিং): একটি এনকোড করা পলিলাইন যা DRIVE রুটকে উপস্থাপন করে।
  3. travel_mode (enum - ঐচ্ছিক): DRIVE (ডিফল্ট), WALK, অথবা BICYCLE. WALK এবং BICYCLE শুধুমাত্র route_endpoints-এর সাথে কাজ করে। TRANSIT কাজ করবে না।

  4. routing_preference (enum - ঐচ্ছিক):

    • ROUTING_PREFERENCE_TRAFFIC_UNAWARE (ডিফল্ট): লাইভ ট্রাফিক ছাড়াই রুট এবং ঘুরপথে যাওয়ার রাস্তা গণনা করে। সবচেয়ে কম লেটেন্সি।
    • ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: উপলভ্য থাকলে লাইভ ট্রাফিক পরিস্থিতি ব্যবহার করে। WALK বা BICYCLE-এর জন্য কাজ করে না। ব্যবহারকারী ট্রাফিক, যানজট বা ট্রাফিক-অ্যাডজাস্টেড ডিট্যুর টাইম সম্পর্কে জিজ্ঞাসা করলে তবেই এটি সেট করুন। এতে বেশি লেটেন্সি হয়।
  5. include_extended_details (বুলিয়ান - ঐচ্ছিক): শুধুমাত্র তখনই true-এ সেট করুন যখন অনুরোধে গুণগত রিভিউ ইনসাইট, নির্দিষ্ট মেনু আইটেম বা অফার, পরিবেশ, ভিজিটরদের জন্য পরামর্শ বা ব্যস্ততা, EV চার্জার উপলভ্যতা, গ্যাসের দাম বা অন্যান্য সমৃদ্ধ গুণগত বিবরণ প্রয়োজন হয়। ডিফল্ট হিসেবে false সেট করা থাকে। এটি চালু করলে লেটেন্সি বেড়ে যেতে পারে।

  6. language_code (স্ট্রিং - ঐচ্ছিক): ফলাফলের সারসংক্ষেপ এবং জায়গার বিবরণের জন্য ভাষা, যেমন, en, ja, en-US। ডিফল্ট হিসেবে en-US সেট করা থাকে।

  7. region_code (স্ট্রিং - ঐচ্ছিক): ব্যবহারকারীর ইউনিকোড CLDR অঞ্চল কোড, যেমন, US, CA।

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

  • প্রতিটি ফলাফলে একটি detour_summary (উপলভ্য থাকলে) অন্তর্ভুক্ত থাকে যা অতিরিক্ত দূরত্ব (localized_detour_distance) এবং রুটটি encoded_polyline হিসাবে না দেওয়া থাকলে, সেই জায়গায় থামার কারণে অতিরিক্ত সময় (detour_duration) বর্ণনা করে। বিকল্পের তুলনা করতে এটি ব্যবহার করুন।
  • উত্তরে summary জিরো-বেসড উদ্ধৃতি (যেমন, "[0]") থাকতে পারে যা results-এ এন্ট্রিকে রেফার করে।
  • গ্রাউন্ডেড আউটপুট অবশ্যই প্রতিটি results[].place-এর attribution ফিল্ড ব্যবহার করে সোর্সে অ্যাট্রিবিউট করতে হবে, যদি উপলভ্য থাকে।
resolve_names

নির্দিষ্ট লোকেশন কোয়েরির (ল্যান্ডমার্কের নাম বা সঠিক ঠিকানা) ব্যাচ লিস্টকে ক্যানোনিকাল Google Maps Place ID-তে সমাধান করে।

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

  1. queries (অবজেক্টের অ্যারে - বাধ্যতামূলক): সমাধান করার জন্য লোকেশন কোয়েরির তালিকা। আপনি সর্বাধিক ২০টি কোয়েরি উল্লেখ করতে পারবেন।

    • প্রতিটি কোয়েরি অবজেক্টে এগুলি থাকতে হবে:
      • text (স্ট্রিং - বাধ্যতামূলক): টেক্সট কোয়েরি যা কোনও নির্দিষ্ট জায়গার নাম বা ঠিকানা দেখায়।
        • উদাহরণ: 'Googleplex, Mountain View, CA', '1600 Amphitheatre Pkwy, Mountain View, CA', 'Eiffel Tower, Paris'.
  2. location_bias (অবজেক্ট - ঐচ্ছিক): কোনও নির্দিষ্ট ভৌগোলিক এলাকার কাছাকাছি ফলাফলকে অগ্রাধিকার দিতে এটি ব্যবহার করুন।

    • ফর্ম্যাট: {"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
  3. region_code (স্ট্রিং - ঐচ্ছিক): ফলাফলকে প্রভাবিত করার জন্য ব্যবহারকারীর ইউনিকোড CLDR অঞ্চল কোড (দুই-অক্ষরের দেশের কোড, যেমন, US, CA)।

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

  • নির্দিষ্টতা (গুরুত্বপূর্ণ): কোয়েরিতে অবশ্যই কোনও নির্দিষ্ট জায়গার নাম বা ঠিকানা থাকতে হবে। 'restaurants'-এর মতো সাধারণ সার্চ বা 'Starbucks'-এর মতো চেনের নাম কাজ করবে না।
  • আপনি যে ডাউনস্ট্রিম টুল ব্যবহার করার পরিকল্পনা করছেন সেটি যদি আগে থেকেই সরাসরি কাঁচা ঠিকানা বা জায়গার নামের স্ট্রিং গ্রহণ করে, তাহলে এই টুল কল করবেন না।

Google Maps-এ সেভ করুন:

  • উত্তরে একটি save_to_maps_url ফিল্ড অন্তর্ভুক্ত থাকে: একটি একক Google Maps লিঙ্ক যাতে সফলভাবে সমাধান করা সমস্ত স্থান থাকে।
  • ব্যবহারকারী যখন Google Maps-এ তালিকা হিসেবে সমাধান করা জায়গাগুলি সেভ, শেয়ার বা খুলতে চান, তখন ব্যবহারকারীকে এই লিঙ্কটি দেখান। এই লিঙ্কটি নিজে তৈরি করবেন না।

সমস্যা ম্যানেজ করা (গুরুত্বপূর্ণ):

  • এটি একটি ব্যাচ প্রসেসিং টুল। কোনও অনুরোধের ক্ষেত্রে "মিশ্র ফলাফল" পাওয়া যেতে পারে (যেমন, কিছু কোয়েরি সফলভাবে সমাধান করা গেলেও অন্যগুলি ব্যর্থ হয়)।
  • results-এর আউটপুট তালিকা ইনপুট queries ইন্ডেক্সের সাথে ১:১ ম্যাপ করবে বলে গ্যারান্টি দেওয়া হয়েছে। কোয়েরি ব্যর্থ হলে, results তালিকার সংশ্লিষ্ট ইন্ডেক্সে একটি খালি Result মেসেজ (কোনও entity সেট করা নেই) দেখানো হবে।
  • কোন নির্দিষ্ট কোয়েরি ইনডেক্স ব্যর্থ হয়েছে তা শনাক্ত করতে আপনাকে অবশ্যই উত্তরে failed_requests ম্যাপ ফিল্ড চেক করতে হবে। failed_requests-এর 'কী' অনুরোধে ব্যর্থ কোয়েরির ০-ভিত্তিক ইন্ডেক্সকে দেখায়। আংশিক ব্যর্থতার কারণে পুরো ব্যাচ কল ব্যর্থ হয়েছে বলে ধরে নেবেন না।
resolve_maps_urls

Google Maps URL-এর একটি তালিকা ক্যানোনিকাল Google Maps Place ID-তে সমাধান করে।

এই টুল কখন কল করতে হবে (গুরুত্বপূর্ণ):

  • ব্যবহারকারী এক বা একাধিক Google Maps শেয়ারিং লিঙ্ক বা URL (যেমন, 'https://maps.app.goo.gl/...') প্রদান করলে এই টুল ব্যবহার করুন, 'https://www.google.com/maps/place/...' অথবা 'https://maps.google.com/...') এবং আপনাকে অন্তর্নিহিত ক্যানোনিকাল স্থান আইডি এক্সট্র্যাক্ট করতে হবে।
  • আপনি একটি ব্যাচ অনুরোধে সমাধান করার জন্য সর্বাধিক ২০টি URL উল্লেখ করতে পারেন।

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

  • urls (স্ট্রিংয়ের অ্যারে - বাধ্যতামূলক): সমাধান করার জন্য Google Maps URL-এর তালিকা। প্রতিটি URL অবশ্যই সঠিক, একটি জায়গার Google Maps URL হতে হবে।

Google Maps-এ সেভ করুন:

  • উত্তরে একটি save_to_maps_url ফিল্ড অন্তর্ভুক্ত থাকে: একটি একক Google Maps লিঙ্ক যাতে সফলভাবে সমাধান করা সমস্ত স্থান থাকে।
  • ব্যবহারকারী যখন Google Maps-এ একটি তালিকা হিসাবে সমাধান করা স্থানগুলি সেভ, শেয়ার বা খুলতে চান (যেমন, কথোপকথনে শেয়ার করা স্থানগুলি সংগ্রহ করা), তখন ব্যবহারকারীকে এই লিঙ্কটি দেখান। এই লিঙ্কটি নিজে তৈরি করবেন না।

সমস্যা ম্যানেজ করা (গুরুত্বপূর্ণ):

  • এটি একটি ব্যাচ প্রসেসিং টুল। কোনও অনুরোধের ক্ষেত্রে "মিশ্র ফলাফল" (যেমন, কিছু URL-এর ক্ষেত্রে সমস্যার সমাধান হলেও, অন্যগুলির ক্ষেত্রে হয়নি) পাওয়া যেতে পারে।
  • entities-এর আউটপুট তালিকা ইনপুট urls ইন্ডেক্সের সাথে ১:১ ম্যাপ করবে বলে গ্যারান্টি দেওয়া হয়েছে। URL রেজোলিউশন ব্যর্থ হলে, entities তালিকার সংশ্লিষ্ট ইন্ডেক্সে একটি খালি Entity মেসেজ (কোনও ফিল্ড সেট করা নেই) দেখা যাবে।
  • কোন নির্দিষ্ট URL ইন্ডেক্স করা যায়নি তা শনাক্ত করতে আপনাকে অবশ্যই উত্তরে failed_requests ম্যাপ ফিল্ড চেক করতে হবে। failed_requests-এর 'কী' অনুরোধে ব্যর্থ URL-এর ০-ভিত্তিক ইন্ডেক্সকে দেখায়। আংশিক ব্যর্থতার কারণে পুরো ব্যাচ কল ব্যর্থ হয়েছে বলে ধরে নেবেন না।

MCP টুলের স্পেসিফিকেশন পান

কোনও MCP সার্ভারের সব টুলের জন্য MCP টুল স্পেসিফিকেশন পেতে, tools/list পদ্ধতি ব্যবহার করুন। 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/list",
    "jsonrpc": "2.0",
    "id": 1
}'