MCP Reference: mapstools.googleapis.com

এটি ম্যাপস গ্রাউন্ডিং লাইট এপিআই দ্বারা প্রদত্ত একটি এমসিপি সার্ভার। এই সার্ভারটি ডেভেলপারদের গুগল ম্যাপস প্ল্যাটফর্মের উপর ভিত্তি করে এলএলএম অ্যাপ্লিকেশন তৈরি করার জন্য বিভিন্ন টুল সরবরাহ করে।

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

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

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

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

একটি এমসিপি সার্ভিস এন্ডপয়েন্ট হলো এমসিপি সার্ভারের নেটওয়ার্ক অ্যাড্রেস এবং কমিউনিকেশন ইন্টারফেস (সাধারণত একটি ইউআরএল), যা একটি এআই অ্যাপ্লিকেশন (এমসিপি ক্লায়েন্টের হোস্ট) একটি সুরক্ষিত ও মানসম্মত সংযোগ স্থাপনের জন্য ব্যবহার করে। এলএলএম-এর জন্য কনটেক্সট অনুরোধ করতে, কোনো টুল চালু করতে বা কোনো রিসোর্স অ্যাক্সেস করার এটিই হলো যোগাযোগের কেন্দ্রবিন্দু। গুগল এমসিপি এন্ডপয়েন্টগুলো বৈশ্বিক বা আঞ্চলিক হতে পারে।

Maps Grounding Lite API MCP সার্ভারের নিম্নলিখিত গ্লোবাল MCP এন্ডপয়েন্ট রয়েছে:

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

এমসিপি টুলস

এমসিপি টুল হলো এমন একটি ফাংশন বা নির্বাহযোগ্য সক্ষমতা যা একটি এমসিপি সার্ভার বাস্তব জগতে কোনো কাজ সম্পাদন করার জন্য এলএলএম বা এআই অ্যাপ্লিকেশনের কাছে উন্মুক্ত করে।

সরঞ্জাম

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

এমসিপি টুলস
search_places

ব্যবহারকারীর অনুরোধ যখন কোনো স্থান, ব্যবসা প্রতিষ্ঠান, ঠিকানা, অবস্থান, দর্শনীয় স্থান বা গুগল ম্যাপস-সম্পর্কিত অন্য কোনো কিছু খোঁজার জন্য হয়, তখন এই টুলটি চালু করুন।

ইনপুট প্রয়োজনীয়তা (অত্যাবশ্যক):

  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 (স্ট্রিং - ঐচ্ছিক): অনুসন্ধানের ফলাফলের সারাংশ যে ভাষায় দেখানো হবে।

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

    • ফর্ম্যাট: দুই অক্ষরের দেশের কোড (ISO 3166-1 alpha-2), যেমন, US , CA

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

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

  • সর্বদা যথাসম্ভব সুনির্দিষ্ট এবং প্রাসঙ্গিকভাবে সমৃদ্ধ text_query প্রদান করুন।

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

  • attribution ফিল্ড থেকে প্রাপ্ত তথ্য ব্যবহার করে গ্রাউন্ডেড আউটপুটটির উৎস উল্লেখ করতে হবে, যদি তা উপলব্ধ থাকে।

lookup_weather

বর্তমান পরিস্থিতি, ঘণ্টাভিত্তিক ও দৈনিক পূর্বাভাসসহ আবহাওয়ার বিস্তারিত তথ্য সংগ্রহ করে।

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

অবস্থান ও অবস্থানের নিয়মাবলী (অত্যন্ত গুরুত্বপূর্ণ):

যে স্থানের আবহাওয়ার তথ্য চাওয়া হচ্ছে, তা ' location ফিল্ড ব্যবহার করে নির্দিষ্ট করা হয়। এই ফিল্ডটি একটি 'ওয়ানঅফ' কাঠামো, যার অর্থ হলো, আবহাওয়ার তথ্যের সঠিক অনুসন্ধান নিশ্চিত করার জন্য আপনাকে অবশ্যই নিচের তিনটি 'লোকেশন' সাব-ফিল্ডের মধ্যে শুধুমাত্র একটিতে মান প্রদান করতে হবে।

  1. ভৌগোলিক স্থানাঙ্ক (lat_lng)

    • যখন আপনাকে সঠিক অক্ষাংশ/দ্রাঘিমাংশ স্থানাঙ্ক দেওয়া হয়, তখন এটি ব্যবহার করুন।
    • উদাহরণ: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // লস অ্যাঞ্জেলেস
  2. স্থানের আইডি (place_id)

    • একটি দ্ব্যর্থহীন স্ট্রিং শনাক্তকারী (গুগল ম্যাপস প্লেস আইডি)।
    • `place_id` `search_places` টুল থেকে পাওয়া যাবে।
    • উদাহরণ: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // আইফেল টাওয়ার
  3. ঠিকানা স্ট্রিং (ঠিকানা)

    • একটি মুক্ত-ফর্মের স্ট্রিং, যা জিওকোডিংয়ের জন্য সুনির্দিষ্টতা দাবি করে।
    • শহর ও অঞ্চল: সর্বদা অঞ্চল/দেশ উল্লেখ করুন (যেমন, "লন্ডন, ইউকে", শুধু "লন্ডন" নয়)।
    • রাস্তার ঠিকানা: সম্পূর্ণ ঠিকানা দিন (যেমন, "1600 Pennsylvania Ave NW, Washington, DC")।
    • পোস্টাল/জিপ কোড: এর সাথে অবশ্যই দেশের নাম উল্লেখ করতে হবে (যেমন, "90210, USA", "90210" নয়)।
    • উদাহরণ: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

ব্যবহারের ধরণ:

  • বর্তমান আবহাওয়া: শুধু location উল্লেখ করুন। datehour উল্লেখ করবেন না।

  • ঘণ্টাভিত্তিক পূর্বাভাস: location , date এবং hour (০-২৩) উল্লেখ করুন। নির্দিষ্ট সময়ের (যেমন, "বিকেল ৫টায়") জন্য অথবা "আগামী কয়েক ঘণ্টা" বা "আজ পরে"-র মতো সময়কালের জন্য এটি ব্যবহার করুন। ব্যবহারকারী মিনিট উল্লেখ করলে, নিকটতম ঘণ্টায় সংখ্যাটি কমিয়ে আনা হবে। এখন থেকে ১২০ ঘণ্টার বেশি সময়ের ঘণ্টাভিত্তিক পূর্বাভাস সমর্থিত নয়। বিগত ২৪ ঘণ্টা পর্যন্ত ঐতিহাসিক ঘণ্টাভিত্তিক আবহাওয়ার তথ্য সমর্থিত।

  • দৈনিক পূর্বাভাস: location এবং date উল্লেখ করুন। hour উল্লেখ করবেন না। সাধারণ দিনের অনুরোধের জন্য এটি ব্যবহার করুন (যেমন, "আগামীকালের আবহাওয়া", "শুক্রবার আবহাওয়া", "২৫/১২ তারিখের আবহাওয়া")। যদি আজকের তারিখ উল্লেখ না থাকে, তবে ব্যবহারকারীর কাছ থেকে বিষয়টি স্পষ্ট করে নিন। আজকের তারিখসহ ১০ দিনের বেশি দিনের দৈনিক পূর্বাভাস দেওয়া সম্ভব নয়। ঐতিহাসিক আবহাওয়া তথ্য সমর্থিত নয়।

প্যারামিটার সীমাবদ্ধতা:

  • সময় অঞ্চল: সমস্ত date এবং hour ইনপুট অবশ্যই অবস্থানের স্থানীয় সময় অঞ্চল অনুযায়ী হতে হবে, ব্যবহারকারীর সময় অঞ্চল অনুযায়ী নয়।
  • তারিখের ফরম্যাট: ইনপুট অবশ্যই {year, month, day} পূর্ণসংখ্যায় বিভক্ত হতে হবে।
  • একক: ডিফল্ট হিসেবে METRIC ব্যবহৃত হয়। যদি ব্যবহারকারী মার্কিন মান ব্যবহার করতে চান বা স্পষ্টভাবে অনুরোধ করেন, তবে ফারেনহাইট/মাইলের জন্য units_system কে IMPERIAL এ সেট করুন।
  • attribution ফিল্ড থেকে প্রাপ্ত তথ্য ব্যবহার করে গ্রাউন্ডেড আউটপুটটির উৎস উল্লেখ করতে হবে, যদি তা উপলব্ধ থাকে।

compute_routes

নির্দিষ্ট উৎস এবং গন্তব্যের মধ্যে একটি ভ্রমণ পথ গণনা করে। সমর্থিত ভ্রমণ মোড: ড্রাইভ (ডিফল্ট), ওয়াক।

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

  • ঠিকানা: (স্ট্রিং, যেমন, 'আইফেল টাওয়ার, প্যারিস')। দ্রষ্টব্য: ইনপুট ঠিকানা যত বেশি সুনির্দিষ্ট বা বিস্তারিত হবে, ফলাফল তত ভালো হবে।

  • lat_lng: (object, {"latitude": number, "longitude": number})

  • place_id: (স্ট্রিং, যেমন, 'ChIJOwE_Id1w5EAR4Q27FkL6T_0') দ্রষ্টব্য: এই আইডিটি search_places টুল থেকে পাওয়া যাবে। যেকোনো ধরনের ইনপুটের সংমিশ্রণ অনুমোদিত (যেমন, ঠিকানা দিয়ে উৎস, অক্ষাংশ ও দ্রাঘিমাংশ দিয়ে গন্তব্য)। যদি উৎস বা গন্তব্য কোনো একটি অনুপস্থিত থাকে, তাহলে টুলটি চালু করার চেষ্টা করার আগে আপনাকে অবশ্যই ব্যবহারকারীর কাছে বিষয়টি স্পষ্ট করে নিতে হবে

টুল কলের উদাহরণ: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • attribution ফিল্ড থেকে প্রাপ্ত তথ্য ব্যবহার করে গ্রাউন্ডেড আউটপুটটির উৎস উল্লেখ করতে হবে, যদি তা উপলব্ধ থাকে।
resolve_names

নির্দিষ্ট অবস্থান অনুসন্ধানের (ল্যান্ডমার্কের নাম বা সঠিক ঠিকানা) একটি ব্যাচ তালিকাকে প্রামাণ্য গুগল ম্যাপস প্লেস আইডিতে রূপান্তর করে।

ইনপুট প্রয়োজনীয়তা (অত্যাবশ্যক):

  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' মতো চেইন প্রতিষ্ঠানের নাম সমর্থিত নয়।
  • আপনি যে পরবর্তী টুলগুলো ব্যবহার করতে চান, সেগুলো যদি আগে থেকেই সরাসরি ঠিকানা বা স্থানের নামের স্ট্রিং গ্রহণ করে থাকে, তাহলে এই টুলটি ব্যবহার করবেন না।

ত্রুটি পরিচালনা (গুরুত্বপূর্ণ):

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

গুগল ম্যাপস ইউআরএল-এর একটি তালিকাকে প্রামাণিক গুগল ম্যাপস প্লেস আইডি-তে রূপান্তর করে।

কখন এই টুলটি ব্যবহার করতে হবে (অত্যন্ত জরুরি):

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

ইনপুট প্রয়োজনীয়তা (অত্যাবশ্যক):

  • urls (স্ট্রিং-এর অ্যারে - আবশ্যিক): সমাধান করার জন্য গুগল ম্যাপস ইউআরএল-এর তালিকা। প্রতিটি ইউআরএল অবশ্যই একটি বৈধ, একক-স্থানের গুগল ম্যাপস ইউআরএল হতে হবে।

ত্রুটি পরিচালনা (গুরুত্বপূর্ণ):

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

এমসিপি টুলের স্পেসিফিকেশন জানুন

একটি MCP সার্ভারের সমস্ত টুলের স্পেসিফিকেশন পেতে, tools/list মেথডটি ব্যবহার করুন। নিম্নলিখিত উদাহরণটি দেখায় কিভাবে curl ব্যবহার করে MCP সার্ভারের মধ্যে বর্তমানে উপলব্ধ সমস্ত টুল এবং তাদের স্পেসিফিকেশন তালিকাভুক্ত করা যায়।

কার্ল অনুরোধ
                      
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
}'