MCP Tools Reference: mapstools.googleapis.com

টুল: 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_names 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": "resolve_names",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

ইনপুট স্কিমা

ResolveNames-এর জন্য অনুরোধের মেসেজ।

ResolveNamesRequest

JSON উপস্থাপনা
{
  "queries": [
    {
      object (LocationQuery)
    }
  ],
  "locationBias": {
    object (LocationBias)
  },
  "regionCode": string
}
ফিল্ড
queries[]

object (LocationQuery)

প্রয়োজনীয়। লোকেশন সংক্রান্ত কোয়েরির তালিকা যা সমাধান করতে হবে। আপনি সর্বাধিক ২০টি কোয়েরি উল্লেখ করতে পারবেন।

locationBias

object (LocationBias)

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

location_bias এবং region_code, দুটিই উল্লেখ করা থাকলে, region_code-এর চেয়ে location_bias-কে বেশি অগ্রাধিকার দেওয়া হয়।

regionCode

string

ঐচ্ছিক। রেজোলিউশন ফলাফলে পক্ষপাতিত্ব করার জন্য একটি ঐচ্ছিক অঞ্চল কোড। উল্লেখ করা থাকলে, রেজোলিউশন ফলাফল নির্দিষ্ট অঞ্চলে বা তার কাছাকাছি থাকা এন্টিটির দিকে পক্ষপাতদুষ্ট হবে। এটি CLDR অঞ্চল কোড হতে হবে। যেমন, "US" বা "CA"। location_bias বা region_code অন্তর্ভুক্ত করলে, সার্চের জায়গা আরও নির্দিষ্ট করে, প্রায়ই আরও ভালো ফলাফল পাওয়া যায়।

location_bias এবং region_code, দুটিই উল্লেখ করা থাকলে, region_code-এর চেয়ে location_bias-কে বেশি অগ্রাধিকার দেওয়া হয়।

LocationQuery

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

string

প্রয়োজনীয়। Google Maps-এ কোনও নির্দিষ্ট জিওস্পেশিয়াল এন্টিটি, যেমন কোনও জায়গা বা ঠিকানা খুঁজে পাওয়ার জন্য টেক্সট কোয়েরি। কোয়েরি যত নির্দিষ্ট হবে, সমাধান তত সঠিক হবে। যেমন, "কলকাতা", "Googleplex, Mountain View, CA", "1600 Amphitheatre Parkway, Mountain View, CA" অথবা "আইফেল টাওয়ার, প্যারিস"। কোয়েরিতে অবশ্যই নির্দিষ্ট ঠিকানা বা জায়গার নাম থাকতে হবে। চেন স্টোরের নাম (যেমন, Starbucks) বা "রেস্তোরাঁ"-এর মতো সার্চ কোয়েরির মতো সাধারণ লোকেশন কাজ করে না।

LocationBias

JSON উপস্থাপনা
{

  // Union field type can be only one of the following:
  "viewport": {
    object (Viewport)
  }
  // End of list of possible types for union field type.
}
ফিল্ড
type ফিল্ড একত্রিত করুন। লোকেশন বায়াসের ধরন। type শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
viewport

object (Viewport)

বাউন্ডিং বক্সের মাধ্যমে নির্ধারিত ভিউপোর্ট।

ভিউপোর্ট

JSON উপস্থাপনা
{
  "low": {
    object (LatLng)
  },
  "high": {
    object (LatLng)
  }
}
ফিল্ড
low

object (LatLng)

প্রয়োজনীয়। ভিউপোর্টের সর্বনিম্ন পয়েন্ট।

high

object (LatLng)

প্রয়োজনীয়। ভিউ-পোর্টের সর্বোচ্চ পয়েন্ট।

LatLng

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

number

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

longitude

number

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

আউটপুট স্কিমা

ResolveNames-এর জন্য উত্তর মেসেজ।

ResolveNamesResponse

JSON উপস্থাপনা
{
  "results": [
    {
      object (Result)
    }
  ],
  "failedRequests": {
    integer: {
      object (Status)
    },
    ...
  },
  "saveToMapsUrl": string
}
ফিল্ড
results[]

object (Result)

শুধু আউটপুট। লোকেশন কোয়েরি থেকে সমাধান করা এন্টিটির তালিকা। অনুরোধ করা queries ইন্ডেক্সের সাথে ১:১ ম্যাপ করার গ্যারান্টি দেওয়া হয়। ইনডেক্স i-এ খালি স্ট্রিং থাকলে বুঝতে হবে যে সেই কোয়েরির রেজোলিউশন করা যায়নি। রেজোলিউশন ব্যর্থ হলে, সমস্যার স্ট্যাটাস জানতে failed_requests ফিল্ড চেক করুন।

failedRequests

map (key: integer, value: object (Status))

শুধু আউটপুট। আংশিক ব্যর্থতা কমিউনিকেট করছে এমন একটি ম্যাপ। queries ফিল্ডে ব্যর্থ অনুরোধের ইন্ডেক্স হল 'কী'। এই ভ্যালু হল সমস্যার সমাধান কেন করা যায়নি সেই সংক্রান্ত বিস্তারিত তথ্য সহ সমস্যার স্ট্যাটাস।

"key": valueটি পেয়ারের তালিকা সহ অবজেক্ট। উদাহরণ: { "name": "wrench", "mass": "1.3kg", "count": "3" }।

saveToMapsUrl

string

শুধু আউটপুট। Google Maps-এ সঠিকভাবে সমাধান করা সব এন্টিটি সেভ করার লিঙ্ক।

ফলাফল

JSON উপস্থাপনা
{
  "entity": {
    object (Entity)
  },
  "confidence": enum (Confidence)
}
ফিল্ড
entity

object (Entity)

শুধু আউটপুট। লোকেশন কোয়েরি থেকে সমাধান করা এন্টিটি।

confidence

enum (Confidence)

শুধু আউটপুট। রেজোলিউশনের জন্য কনফিডেন্স লেভেল।

এন্টিটি

JSON উপস্থাপনা
{

  // Union field entity can be only one of the following:
  "place": string
  // End of list of possible types for union field entity.
}
ফিল্ড
entity ফিল্ড একত্রিত করুন। সমাধান করা এন্টিটির ধরন। entity শুধুমাত্র নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:
place

string

সমাধান করা জায়গার রিসোর্সের নাম।

FailedRequestsEntry

JSON উপস্থাপনা
{
  "key": integer,
  "value": {
    object (Status)
  }
}
ফিল্ড
key

integer

value

object (Status)

স্ট্যাটাস

JSON উপস্থাপনা
{
  "code": integer,
  "message": string,
  "details": [
    {
      "@type": string,
      field1: ...,
      ...
    }
  ]
}
ফিল্ড
code

integer

স্ট্যাটাস কোড, যা google.rpc.Code-এর একটি enum ভ্যালু হওয়া উচিত।

message

string

ডেভেলপারকে দেখানো সমস্যার মেসেজ, যা ইংরেজিতে হতে হবে। ব্যবহারকারী নিজে ইন্টার‌্যাক্ট করতে পারেন এমন যেকোনও ত্রুটি মেসেজ লোকালাইজ করে google.rpc.Status.details ফিল্ডে পাঠাতে হবে অথবা ক্লায়েন্টকে লোকালাইজ করতে হবে।

details[]

object

সমস্যার বিবরণ সহ মেসেজের তালিকা। API-এর ব্যবহারের জন্য মেসেজের ধরনের একটি সাধারণ সেট আছে।

এমন একটি অবজেক্ট যাতে ইচ্ছামতো ধরনের ফিল্ড আছে। একটি অতিরিক্ত ফিল্ড "@type"-এ ধরন শনাক্তকারী URI থাকে। উদাহরণ: { "id": 1234, "@type": "types.example.com/standard/id" }।

যেকোনও

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

string

URI রেফারেন্স সহ সিরিয়ালাইজ করা Protobuf মেসেজের ধরন শনাক্ত করে, যার মধ্যে স্ল্যাশ দিয়ে শেষ হওয়া প্রিফিক্স এবং সম্পূর্ণ-যোগ্য ধরনের নাম থাকে।

যেমন: type.googleapis.com/google.protobuf.StringValue

এই স্ট্রিংয়ে অন্তত একটি / অক্ষর থাকতে হবে এবং শেষ /-এর পরে থাকা কন্টেন্টটি অবশ্যই ক্যানোনিকাল ফর্মে প্রকারের সম্পূর্ণ-যোগ্য নাম হতে হবে, যার শুরুতে কোনও ডট থাকবে না। এইসব URI রেফারেন্সে কোনও স্কিম লিখবেন না যাতে ক্লায়েন্টরা তাদের সাথে যোগাযোগ করার চেষ্টা না করে।

প্রিফিক্সটি ইচ্ছামতো দেওয়া হয় এবং Protobuf ইমপ্লিমেন্টেশন থেকে আশা করা হয় যে এটি ধরন শনাক্ত করার জন্য শেষ / পর্যন্ত এবং সেটি সহ সবকিছু বাদ দিয়ে দেবে। type.googleapis.com/ হল একটি সাধারণ ডিফল্ট প্রিফিক্স যা কিছু লিগ্যাসি ইমপ্লিমেন্টেশনের জন্য প্রয়োজন। এই প্রিফিক্স টাইপের উৎস নির্দেশ করে না এবং এটি সহ URI কোনও অনুরোধের উত্তর দেবে বলে আশা করা হয় না।

সব ধরনের URL স্ট্রিং অবশ্যই অতিরিক্ত বিধিনিষেধ (টেক্সট ফর্ম্যাটের জন্য) সহ বৈধ URI রেফারেন্স হতে হবে, যাতে রেফারেন্সের কন্টেন্টে শুধুমাত্র বর্ণসাংখ্যিক অক্ষর, শতাংশ-এনকোড করা এস্কেপ এবং নিম্নলিখিত সেটের অক্ষর (বাইরের ব্যাকটিক্স সহ নয়) থাকতে হবে: /-.~_!$&()*+,;=। আমরা শতাংশ এনকোডিংয়ের অনুমতি দিলেও, আগে থেকে থাকা পার্সারের সাথে বিভ্রান্তি এড়াতে ইমপ্লিমেন্টেশনের সময় সেগুলি আনএসকেপ করা উচিত নয়। যেমন, type.googleapis.com%2FFoo বাতিল করা উচিত।

Any-এর আসল ডিজাইনে, এই ধরনের URL-এ টাইপ রেজোলিউশন পরিষেবা চালু করার সম্ভাবনা বিবেচনা করা হয়েছিল কিন্তু Protobuf কখনই তা বাস্তবায়ন করেনি এবং এই URL-এর সাথে যোগাযোগ করাকে সমস্যাজনক এবং সম্ভাব্য নিরাপত্তা সমস্যা হিসেবে বিবেচনা করে। যোগাযোগের ধরন সংক্রান্ত URL-এ যোগাযোগ করার চেষ্টা করবেন না।

value

string (bytes format)

type_url-এর মাধ্যমে বর্ণনা করা ধরনের Protobuf সিরিয়ালাইজেশন হোল্ড করে।

একটি base64-এনকোড করা স্ট্রিং।

কনফিডেন্স

রেজোলিউশনের জন্য কনফিডেন্স লেভেল।

Enums
CONFIDENCE_UNSPECIFIED ডিফল্ট ভ্যালু। এই ভ্যালু ব্যবহার করা হয়নি।
MEDIUM মিডিয়াম কনফিডেন্স থেকে বোঝা যায় যে রেজোলিউশন সঠিক হওয়ার সম্ভাবনা আছে, তবে অন্যান্য বিকল্পও থাকতে পারে।
HIGH হাই কনফিডেন্স থেকে বোঝা যায় যে রেজোলিউশন সঠিক এবং এটি নির্দিষ্ট জিওস্পেশিয়াল এন্টিটি (যেমন, নির্দিষ্ট জায়গা) দেখায়।

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

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

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

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

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