MCP Tools Reference: mapstools.googleapis.com

টুল: 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-এর 0-ভিত্তিক ইন্ডেক্সকে দেখায়। আংশিক ব্যর্থতার কারণে পুরো ব্যাচ কল ব্যর্থ হয়েছে বলে ধরে নেবেন না।

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

ইনপুট স্কিমা

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

ResolveMapsUrlsRequest

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

string

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

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

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

ResolveMapsUrlsResponse

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

object (Entity)

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

failedRequests

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

শুধু আউটপুট। Google Maps URL-এর জন্য আংশিক ব্যর্থতার বিষয়ে জানানো একটি ম্যাপ। urls ফিল্ডে ব্যর্থ অনুরোধের ইন্ডেক্স হল 'কী'। এই ভ্যালু হল সমস্যার সমাধান কেন করা যায়নি সেই সংক্রান্ত বিস্তারিত তথ্য সহ সমস্যার স্ট্যাটাস।

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

saveToMapsUrl

string

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

এন্টিটি

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-এনকোড করা স্ট্রিং।

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

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

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

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

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