MCP Tools Reference: mapstools.googleapis.com

ابزار: compute_routes

مسیر سفر بین مبدأ و مقصد مشخصی را محاسبه می‌کند. حالت‌های سفر پشتیبانی‌شده: رانندگی (پیش‌فرض)، پیاده‌روی.

الزامات ورودی (حیاتی): هم مبدأ و هم مقصد را می‌طلبد. هرکدام باید بااستفاده از یکی از روش‌های زیر، در فیلد مربوطه ارائه شود:

  • نشانی: (رشته، برای نمونه، «برج ایفل، پاریس»). توجه: هرچه نشانی ورودی جزئی‌تر یا دقیق‌تر باشد، نتایج بهتر خواهد بود.

  • lat_lng: (شیء، {"latitude": عدد، "longitude": عدد})

  • place_id: (رشته، برای نمونه، «ChIJOwE_Id1w5EAR4Q27FkL6T_0») توجه: این شناسه را می‌توان از ابزار search_places دریافت کرد. هر ترکیبی از انواع ورودی مجاز است (برای نمونه، مبدأ براساس نشانی، مقصد براساس lat_lng). اگر مبدأ یا مقصد وجود ندارد، قبل‌از تلاش برای فراخوانی ابزار، حتماً باید از کاربر بخواهید توضیح دهد.

تماس ابزار نمونه: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • برونداد زمینه‌ای باید بااستفاده از اطلاعات فیلد attribution درصورت دردسترس بودن به منبع نسبت داده شود.

نمونه کد زیر نحوه استفاده از curl برای فراخوانی ابزار compute_routes 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": "compute_routes",
    "arguments": {
      // Provide these details according to the MCP tool specification.
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

طرح‌واره ورودی

‫ComputeRoutesRequest.

ComputeRoutesRequest

نمایش JSON
{
  "origin": {
    object (Waypoint)
  },
  "destination": {
    object (Waypoint)
  },
  "travelMode": enum (RouteTravelMode)
}
فیلدها
origin

object (Waypoint)

الزامی. نقطه‌مسیر مبدأ.

destination

object (Waypoint)

الزامی. ایستگاه بین راهی مقصد.

travelMode

enum (RouteTravelMode)

اختیاری. حالت حمل‌ونقل را مشخص می‌کند.

نقطه مسیر

نمایش JSON
{

  // Union field location_type can be only one of the following:
  "latLng": {
    object (LatLng)
  },
  "placeId": string,
  "address": string
  // End of list of possible types for union field location_type.
}
فیلدها
فیلد اتحادیه location_type. روش‌های مختلف برای نمایش مکان. ‫location_type فقط می‌تواند یکی از موارد زیر باشد:
latLng

object (LatLng)

نقطه‌ای که بااستفاده از مختصات جغرافیایی مشخص شده است.

placeId

string

«شناسه مکان» مرتبط با نقطه بین راه.

address

string

نشانی قابل‌خواندن توسط انسان یا کد پلاس. برای جزئیات، به https://plus.codes مراجعه کنید.

LatLng

نمایش JSON
{
  "latitude": number,
  "longitude": number
}
فیلدها
latitude

number

عرض جغرافیایی به درجه. باید در محدوده [-۹۰.۰، +۹۰.۰] باشد.

longitude

number

طول جغرافیایی به درجه. باید در محدوده [-۱۸۰.۰، +۱۸۰.۰] باشد.

RouteTravelMode

مجموعه‌ای از مقادیر که برای مشخص کردن حالت سفر استفاده می‌شود.

شمارشی‌ها
ROUTE_TRAVEL_MODE_UNSPECIFIED حالت سفری مشخص نشده است. پیش‌فرض DRIVE است.
DRIVE با خودروی مسافری سفر کنید.
WALK با پیاده‌روی سفر کنید. توجه: WALK مسیر در مرحله بتا است و ممکن است گاهی اوقات فاقد پیاده‌روهای مشخص یا مسیرهای پیاده باشد. باید این هشدار را برای همه پیاده‌روی‌هایی که در برنامه‌تان نمایش می‌دهید به کاربر نشان دهید.

طرح‌واره برونداد

‫ComputeRoutesResponse.

ComputeRoutesResponse

نمایش JSON
{
  "routes": [
    {
      object (Route)
    }
  ]
}
فیلدها
routes[]

object (Route)

شامل مسیرهای بین مبدأ و مقصد درخواستی است. درحال‌حاضر فقط یک مسیر برگردانده می‌شود.

مسیر

نمایش JSON
{
  "distanceMeters": integer,
  "duration": string,
  "attribution": {
    object (Attribution)
  }
}
فیلدها
distanceMeters

integer

مسافت سفر مسیر، به متر.

duration

string (Duration format)

مدت زمانی که برای پیمایش مسیر لازم است.

مدت زمان به ثانیه با حداکثر نه رقم اعشاری، که با «s» پایان می‌یابد. مثال: "3.5s".

attribution

object (Attribution)

استناد الزامی برای نمایش با مسیر.

مدت

نمایش JSON
{
  "seconds": string,
  "nanos": integer
}
فیلدها
seconds

string (int64 format)

ثانیه‌های علامت‌دار بازه زمانی. باید از -۳۱۵٬۵۷۶٬۰۰۰٬۰۰۰ تا +۳۱۵٬۵۷۶٬۰۰۰٬۰۰۰ فراگیر باشد. توجه: این حدود از محاسبات زیر به‌دست آمده است: ۶۰ ثانیه/دقیقه * ۶۰ دقیقه/ساعت * ۲۴ ساعت/روز * ۳۶۵٫۲۵ روز/سال * ۱۰۰۰۰ سال

nanos

integer

کسرهای امضا‌شده از ثانیه در وضوح نانوثانیه از بازه زمانی. مدت‌های کمتر از یک ثانیه با فیلد 0 seconds و فیلد nanos مثبت یا منفی نشان داده می‌شوند. برای مدت‌های یک ثانیه یا بیشتر، مقدار غیرصفر برای فیلد nanos باید هم‌علامت با فیلد seconds باشد. باید از ۹۹۹٬۹۹۹٬۹۹۹- تا ۹۹۹٬۹۹۹٬۹۹۹+ فراگیر باشد.

اِسناد

نمایش JSON
{
  "title": string,
  "url": string
}
فیلدها
title

string

عنوان نمایش داده‌شده برای اسناد.

url

string

نشانی وب برای پیوند دادن به اِسناد.

حاشیه‌نویسی ابزار

گزارمان‌های ابزار برای توصیف خطر اولیه یک ابزار معین به کارخواهان MCP ارسال می‌شود. اکثر کارخواه‌ها این نشانه‌ها را به‌عنوان نامطمئن درنظر می‌گیرند، اما می‌توان از آن‌ها برای تصمیم‌گیری درباره زمان ارسال پیام‌واره تأیید به کاربر استفاده کرد.

به‌همراه رشته عنوان، نشان‌های بولی زیر به این صورت تعریف می‌شوند:

  • ‫readOnlyHint: اگر درست باشد، ابزار محیطش را تغییر نمی‌دهد. پیش‌فرض: نادرست.
  • ‫destructiveHint: اگر درست باشد، ابزار می‌تواند کنش‌های مخرب انجام دهد. اگر نادرست باشد، ابزار فقط می‌تواند کنش‌های افزودنی انجام دهد. پیش‌فرض: درست.
  • idempotentHint: اگر درست باشد، فراخوانی مکرر ابزار با همان آرگومان‌ها تأثیر اضافه‌ای بر محیط آن نخواهد داشت. پیش‌فرض: نادرست.
  • ‫openWorldHint: اگر درست باشد، ابزار می‌تواند با «دنیای باز» نهادهای خارجی تعامل داشته باشد. اگر نادرست باشد، ابزار فقط می‌تواند با نهادهای داخلی تعامل داشته باشد. برای مثال، ابزار جستجوی وب دنیای باز است، اما ابزار حافظه دنیای باز نیست.

راهنمایی مخرب: ❌ | راهنمایی خودتوان: ❌ | راهنمایی فقط خواندنی: ✅ | راهنمایی جهان باز: ❌