MCP Tools Reference: mapstools.googleapis.com

টুল: resolve_names

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

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

  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 --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-এর এনুম ভ্যালু হতে হবে।

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: true হলে, একই আর্গুমেন্ট সহ টুলটি বারবার কল করলে এর এনভায়রনমেন্টের উপর কোনও অতিরিক্ত প্রভাব পড়বে না। ডিফল্ট: false.
  • openWorldHint: এটি সত্য হলে, টুলটি এক্সটার্নাল এন্টিটির 'ওপেন ওয়ার্ল্ড' ইন্টার‍্যাক্ট করতে পারবে। ফলস হলে, টুলটি শুধুমাত্র ইন্টার্নাল এন্টিটির সাথে ইন্টার‍্যাক্ট করতে পারবে। যেমন, ওয়েব সার্চ টুল হল ওপেন ওয়ার্ল্ড, কিন্তু মেমরি টুল ওপেন ওয়ার্ল্ড নয়।

ধ্বংসাত্মক ইঙ্গিত: ❌ | আইডেম্পোটেন্ট ইঙ্গিত: ❌ | শুধুমাত্র পড়ার ইঙ্গিত: ✅ | ওপেন ওয়ার্ল্ড ইঙ্গিত: ❌