MCP Reference: mapstools.googleapis.com

นี่คือเซิร์ฟเวอร์ MCP ที่ API ของ Maps Grounding Lite จัดเตรียมให้ เซิร์ฟเวอร์นี้มีเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ในการสร้างแอปพลิเคชัน LLM บน Google Maps Platform

เซิร์ฟเวอร์ Model Context Protocol (MCP) ทำหน้าที่เป็นพร็อกซีระหว่างบริการภายนอกที่ให้บริบท ข้อมูล หรือความสามารถแก่โมเดลภาษาขนาดใหญ่ (LLM) หรือแอปพลิเคชัน AI เซิร์ฟเวอร์ MCP จะเชื่อมต่อแอปพลิเคชัน AI กับระบบภายนอก เช่น ฐานข้อมูลและบริการเว็บ โดยจะแปลคำตอบเป็นรูปแบบที่แอปพลิเคชัน AI เข้าใจได้

การตั้งค่าเซิร์ฟเวอร์

คุณต้องเปิดใช้เซิร์ฟเวอร์ MCP และตั้งค่าการตรวจสอบสิทธิ์ก่อนใช้งาน ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้เซิร์ฟเวอร์ MCP ระยะไกลของ Google และ Google Cloud ได้ที่ภาพรวมเซิร์ฟเวอร์ MCP ของ Google Cloud

ปลายทางของเซิร์ฟเวอร์

ปลายทางบริการ MCP คือที่อยู่เครือข่ายและอินเทอร์เฟซการสื่อสาร (โดยปกติคือ URL) ของเซิร์ฟเวอร์ MCP ที่แอปพลิเคชัน AI (โฮสต์สำหรับไคลเอ็นต์ MCP) ใช้เพื่อสร้างการเชื่อมต่อที่ปลอดภัยและได้มาตรฐาน ซึ่งเป็นจุดติดต่อสำหรับ LLM ในการขอบริบท เรียกใช้เครื่องมือ หรือเข้าถึงทรัพยากร ปลายทาง MCP ของ Google อาจเป็นแบบทั่วโลกหรือระดับภูมิภาค

เซิร์ฟเวอร์ MCP ของ Maps Grounding Lite API มีอุปกรณ์ปลายทาง MCP ทั่วโลกต่อไปนี้

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

เครื่องมือ MCP

เครื่องมือ MCP คือฟังก์ชันหรือความสามารถที่เรียกใช้งานได้ซึ่งเซิร์ฟเวอร์ MCP แสดงต่อ LLM หรือแอปพลิเคชัน AI เพื่อดำเนินการในโลกแห่งความเป็นจริง

เครื่องมือ

เซิร์ฟเวอร์ MCP ของ mapstools.googleapis.com มีเครื่องมือต่อไปนี้

เครื่องมือ MCP
search_places

เรียกใช้เครื่องมือนี้เมื่อคำขอของผู้ใช้คือการค้นหาสถานที่ ธุรกิจ ที่อยู่ สถานที่ตั้ง จุดที่น่าสนใจ หรือการค้นหาอื่นๆ ที่เกี่ยวข้องกับ Google Maps

ข้อกำหนดของอินพุต (สำคัญ):

  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)]}}}
    • การใช้งาน:
      • หากต้องการให้มีรัศมี 5 กม. {"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 (สตริง - ไม่บังคับ): ภาษาที่จะใช้แสดงข้อมูลสรุปของผลการค้นหา

    • รูปแบบ: รหัสภาษาแบบ 2 ตัวอักษร (ISO 639-1) ตามด้วยขีดล่างและรหัสประเทศแบบ 2 ตัวอักษร (ISO 3166-1 alpha-2) โดยไม่บังคับ เช่น en, ja, en_US, zh_CN, es_MX หากไม่ได้ระบุรหัสภาษา ผลลัพธ์จะเป็นภาษาอังกฤษ
  4. region_code (สตริง - ไม่บังคับ): รหัสภูมิภาค Unicode CLDR ของผู้ใช้ พารามิเตอร์นี้ใช้เพื่อแสดงรายละเอียดสถานที่ เช่น ชื่อสถานที่เฉพาะภูมิภาค หากมี พารามิเตอร์นี้อาจส่งผลต่อผลลัพธ์ตามกฎหมายที่เกี่ยวข้อง

    • รูปแบบ: รหัสประเทศ 2 ตัวอักษร (ISO 3166-1 alpha-2) เช่น US, CA

Instructions for Tool Call:

  • ข้อมูลสถานที่ตั้ง (สำคัญ): การค้นหาต้องมีข้อมูลสถานที่ตั้งเพียงพอ หากสถานที่ตั้งไม่ชัดเจน (เช่น เพียงแค่ "ร้านพิซซ่า") คุณต้องระบุใน text_query (เช่น "ร้านพิซซ่าในนิวยอร์ก") หรือใช้พารามิเตอร์ location_bias ระบุชื่อเมือง รัฐ/จังหวัด และภูมิภาค/ประเทศ หากจำเป็นเพื่อแยกความแตกต่าง

  • ระบุtext_queryที่เฉพาะเจาะจงและมีบริบทมากที่สุดเท่าที่จะทำได้เสมอ

  • ใช้ location_bias เฉพาะในกรณีที่มีการระบุพิกัดอย่างชัดเจน หรือหากการอนุมานตำแหน่งจากบริบทที่ทราบของผู้ใช้เหมาะสมและจำเป็นเพื่อให้ได้ผลลัพธ์ที่ดีขึ้น

  • เอาต์พุตที่อิงตามข้อมูลพื้นฐานต้องระบุแหล่งที่มาโดยใช้ข้อมูลจากฟิลด์ attribution เมื่อมี

lookup_weather

ดึงข้อมูลสภาพอากาศที่ครอบคลุม รวมถึงสภาพอากาศปัจจุบัน การพยากรณ์อากาศรายชั่วโมง และรายวัน

ข้อมูลที่เฉพาะเจาะจงที่พร้อมใช้งาน: อุณหภูมิ (ปัจจุบัน, อุณหภูมิที่รู้สึก, สูงสุด/ต่ำสุด, ดัชนีความร้อน), ลม (ความเร็ว, ลมกระโชก, ทิศทาง), ปรากฏการณ์บนท้องฟ้า (พระอาทิตย์ขึ้น/ตก, ข้างขึ้นข้างแรม), ปริมาณน้ำฝน (ประเภท, ความน่าจะเป็น, ปริมาณ/QPF), สภาพอากาศ (ดัชนีรังสียูวี, ความชื้น, ปริมาณเมฆ, ความน่าจะเป็นที่จะเกิดพายุฝนฟ้าคะนอง) และที่อยู่ของสถานที่ที่แปลงเป็นพิกัดทางภูมิศาสตร์

สถานที่และกฎสถานที่ (สำคัญ):

ระบบจะระบุสถานที่ตั้งที่ขอข้อมูลสภาพอากาศโดยใช้ช่อง location ฟิลด์นี้เป็นโครงสร้าง "oneof" ซึ่งหมายความว่าคุณต้องระบุค่าสำหรับฟิลด์ย่อยตำแหน่งเพียง 1 ใน 3 รายการด้านล่างเพื่อให้มั่นใจว่าการค้นหาข้อมูลสภาพอากาศถูกต้อง

  1. พิกัดทางภูมิศาสตร์ (lat_lng)

    • ใช้เมื่อได้รับพิกัดละติจูด/ลองจิจูดที่แน่นอน
    • ตัวอย่าง: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // ลอสแอนเจลิส
  2. รหัสสถานที่ (place_id)

    • ตัวระบุสตริงที่ไม่กำกวม (รหัสสถานที่ของ Google Maps)
    • คุณดึงข้อมูล place_id ได้จากเครื่องมือ search_places
    • ตัวอย่าง: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // หอไอเฟล
  3. สตริงที่อยู่ (address)

    • สตริงรูปแบบอิสระที่ต้องมีความเฉพาะเจาะจงสำหรับการเข้ารหัสพิกัดภูมิศาสตร์
    • เมืองและภูมิภาค: ระบุภูมิภาค/ประเทศเสมอ (เช่น "ลอนดอน สหราชอาณาจักร" ไม่ใช่ "ลอนดอน")
    • ที่อยู่: ระบุที่อยู่แบบเต็ม (เช่น "1600 Pennsylvania Ave NW, Washington, DC")
    • รหัสไปรษณีย์: ต้องระบุชื่อประเทศด้วย (เช่น "90210, USA" ไม่ใช่ "90210")
    • ตัวอย่าง: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

โหมดการใช้งาน:

  • สภาพอากาศปัจจุบัน: ระบุlocationเท่านั้น อย่าระบุ date และ hour

  • พยากรณ์อากาศรายชั่วโมง: ระบุ location, date และ hour (0-23) ใช้สำหรับเวลาที่เฉพาะเจาะจง (เช่น "ตอน 17:00 น.") หรือคำต่างๆ เช่น "อีก 2-3 ชั่วโมง" หรือ "ช่วงเย็นวันนี้" หากผู้ใช้ระบุนาที ให้ปัดลงเป็นชั่วโมงที่ใกล้ที่สุด ระบบไม่รองรับพยากรณ์อากาศรายชั่วโมงที่เกิน 120 ชั่วโมงนับจากนี้ และรองรับข้อมูลสภาพอากาศรายชั่วโมงในอดีตย้อนหลังได้สูงสุด 24 ชั่วโมง

  • พยากรณ์อากาศรายวัน: ระบุ location และ date อย่าระบุ hour ใช้สำหรับคำขอทั่วไปเกี่ยวกับวัน (เช่น "อากาศพรุ่งนี้" "อากาศวันศุกร์" "อากาศวันที่ 25/12") หากวันที่ปัจจุบันไม่อยู่ในบริบท คุณควรชี้แจงให้ผู้ใช้ทราบ ระบบไม่รองรับพยากรณ์อากาศรายวันเกิน 10 วันรวมถึงวันนี้ และไม่รองรับสภาพอากาศย้อนหลัง

ข้อจํากัดของพารามิเตอร์

  • เขตเวลา: อินพุต date และ hour ทั้งหมดต้องสัมพันธ์กับเขตเวลาท้องถิ่นของสถานที่ตั้ง ไม่ใช่เขตเวลาของผู้ใช้
  • รูปแบบวันที่: ต้องแยกอินพุตเป็น{year, month, day}จำนวนเต็ม
  • หน่วย: ค่าเริ่มต้นคือ METRIC ตั้งค่า units_system เป็น IMPERIAL สำหรับฟาเรนไฮต์/ไมล์ หากผู้ใช้ระบุมาตรฐานของสหรัฐอเมริกาหรือขออย่างชัดเจน
  • เอาต์พุตที่อิงตามข้อมูลพื้นฐานต้องระบุแหล่งที่มาโดยใช้ข้อมูลจากฟิลด์ attribution เมื่อมี

compute_routes

คำนวณเส้นทางการเดินทางระหว่างต้นทางและปลายทางที่ระบุ โหมดการเดินทางที่รองรับ: ขับรถ (ค่าเริ่มต้น), เดิน

ข้อกำหนดในการป้อนข้อมูล (สำคัญ): ต้องระบุทั้งต้นทางและปลายทาง โดยต้องระบุโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้ ซึ่งซ้อนอยู่ในฟิลด์ที่เกี่ยวข้อง

  • ที่อยู่: (สตริง เช่น "หอไอเฟล ปารีส") หมายเหตุ: ยิ่งที่อยู่ที่ป้อนมีความละเอียดหรือเฉพาะเจาะจงมากเท่าใด ผลลัพธ์ก็จะยิ่งดีขึ้นเท่านั้น

  • lat_lng: (ออบเจ็กต์, {"latitude": number, "longitude": number})

  • place_id: (สตริง เช่น "ChIJOwE_Id1w5EAR4Q27FkL6T_0") หมายเหตุ: คุณขอรับรหัสนี้ได้จากเครื่องมือ search_places ระบบอนุญาตให้ใช้ชุดค่าผสมของประเภทอินพุต (เช่น ต้นทางตามที่อยู่ ปลายทางตาม lat_lng) หากไม่มีทั้งต้นทางหรือปลายทาง คุณต้องขอคำชี้แจงจากผู้ใช้ก่อนที่จะพยายามเรียกใช้เครื่องมือ

การเรียกใช้เครื่องมือตัวอย่าง: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • เอาต์พุตที่อิงตามข้อมูลพื้นฐานต้องระบุแหล่งที่มาโดยใช้ข้อมูลจากฟิลด์ attribution เมื่อมี
resolve_names

แปลงรายการคำค้นหาตำแหน่งที่เฉพาะเจาะจง (ชื่อสถานที่สำคัญหรือที่อยู่ที่แน่นอน) เป็นรหัสสถานที่ของ Google Maps ที่เป็น Canonical

ข้อกำหนดของอินพุต (สำคัญ):

  1. queries (อาร์เรย์ของออบเจ็กต์ - ต้องระบุ): รายการคำค้นหาสถานที่ตั้งที่จะแก้ไข คุณระบุคำค้นหาได้สูงสุด 20 รายการ

    • ออบเจ็กต์การค้นหาแต่ละรายการต้องมี
      • 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 ของ Unicode (รหัสประเทศแบบ 2 ตัวอักษร เช่น US, CA) ของผู้ใช้เพื่อปรับผลลัพธ์

Instructions for Tool Call:

  • ความเฉพาะเจาะจง (สําคัญ): คําค้นหาต้องแสดงชื่อหรือที่อยู่ของสถานที่ที่เฉพาะเจาะจง ระบบไม่รองรับการค้นหาทั่วไป เช่น 'restaurants' หรือชื่อเชน เช่น 'Starbucks'
  • อย่าเรียกใช้เครื่องมือนี้หากเครื่องมือปลายทางที่คุณวางแผนจะเรียกใช้ยอมรับสตริงที่อยู่หรือชื่อสถานที่แบบดิบโดยตรงอยู่แล้ว

การจัดการข้อผิดพลาด (วิกฤต):

  • นี่คือเครื่องมือประมวลผลแบบกลุ่ม คำขออาจแสดง "ผลลัพธ์แบบผสม" (เช่น การค้นหาบางอย่างทำงานได้สำเร็จ แต่บางอย่างล้มเหลว)
  • รับประกันว่ารายการเอาต์พุตของ results จะแมปแบบ 1:1 กับดัชนีอินพุต queries การค้นหาที่ไม่สำเร็จจะส่งผลให้มีข้อความ Result ว่างเปล่า (ไม่มีการตั้งค่า entity) ที่ดัชนีที่เกี่ยวข้องในรายการ results
  • คุณต้องตรวจสอบfailed_requestsฟิลด์แผนที่ในการตอบกลับเพื่อระบุว่าดัชนีการค้นหาใดที่ล้มเหลว คีย์ของ failed_requests แสดงถึงดัชนีที่อิงตาม 0 ของการค้นหาที่ล้มเหลวในคำขอ อย่าคิดว่าการเรียกใช้แบบกลุ่มทั้งหมดล้มเหลวเนื่องจากล้มเหลวบางส่วน
resolve_maps_urls

แปลงรายการ URL ของ Google Maps เป็นรหัสสถานที่ของ Google Maps ที่เป็น Canonical

เมื่อใดที่ควรเรียกใช้เครื่องมือนี้ (สำคัญ):

  • ใช้เครื่องมือนี้เมื่อผู้ใช้ระบุลิงก์หรือ URL การแชร์ของ Google Maps อย่างน้อย 1 รายการ (เช่น "https://maps.app.goo.gl/..." 'https://www.google.com/maps/place/...' หรือ 'https://maps.google.com/...') และคุณต้องดึงรหัสสถานที่ Canonical ที่เกี่ยวข้อง
  • คุณระบุ URL ได้สูงสุด 20 รายการเพื่อแก้ไขในคำขอแบบกลุ่มรายการเดียว

ข้อกำหนดของอินพุต (สำคัญ):

  • urls (อาร์เรย์ของสตริง - ต้องระบุ): รายการ URL ของ Google Maps ที่จะแก้ไข URL แต่ละรายการต้องเป็น URL ของ Google Maps ที่ถูกต้องและเป็นสถานที่เดียว

การจัดการข้อผิดพลาด (วิกฤต):

  • นี่คือเครื่องมือประมวลผลแบบกลุ่ม คำขออาจแสดง "ผลลัพธ์แบบผสม" (เช่น URL บางรายการแปลงเป็นที่อยู่ IP ได้สำเร็จ แต่บางรายการไม่สำเร็จ)
  • เรารับประกันว่ารายการเอาต์พุตของ entities จะแมปแบบ 1:1 กับดัชนี urls ของอินพุต การแก้ปัญหา URL ที่ไม่สำเร็จจะส่งผลให้เกิดข้อความ Entity ว่างเปล่า (ไม่มีการตั้งค่าฟิลด์) ที่ดัชนีที่เกี่ยวข้องในรายการ entities
  • คุณต้องตรวจสอบฟิลด์แผนที่ failed_requests ในการตอบกลับเพื่อระบุว่า URL ใดที่จัดทำดัชนีไม่สำเร็จ คีย์ของ failed_requests แสดงดัชนีที่อิงตาม 0 ของ URL ที่ล้มเหลวในคำขอ อย่าคิดว่าการเรียกใช้แบบกลุ่มทั้งหมดล้มเหลวเนื่องจากล้มเหลวบางส่วน

ดูข้อกำหนดของเครื่องมือ MCP

หากต้องการดูข้อกำหนดของเครื่องมือ MCP สำหรับเครื่องมือทั้งหมดในเซิร์ฟเวอร์ MCP ให้ใช้วิธี tools/list ตัวอย่างต่อไปนี้แสดงวิธีใช้ curl เพื่อแสดงรายการเครื่องมือทั้งหมดและข้อกำหนดของเครื่องมือที่พร้อมใช้งานในเซิร์ฟเวอร์ MCP ในปัจจุบัน

คำขอ Curl
                      
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
}'