MCP Reference: mapstools.googleapis.com

To jest serwer MCP udostępniany przez interfejs Maps Grounding Lite API. Serwer udostępnia narzędzia, które umożliwiają deweloperom tworzenie aplikacji LLM na podstawie Google Maps Platform.

Serwer Model Context Protocol (MCP) działa jako serwer proxy między usługą zewnętrzną, która udostępnia kontekst, dane lub możliwości dużemu modelowi językowemu (LLM) lub aplikacji AI. Serwery MCP łączą aplikacje AI z systemami zewnętrznymi, takimi jak bazy danych i usługi internetowe, tłumacząc ich odpowiedzi na format zrozumiały dla aplikacji AI.

Konfiguracja serwera

Przed użyciem musisz włączyć serwery MCP i skonfigurować uwierzytelnianie. Więcej informacji o korzystaniu ze zdalnych serwerów MCP Google i Google Cloud znajdziesz w artykule Omówienie serwerów MCP Google Cloud.

Punkty końcowe serwera

Punkt końcowy usługi MCP to adres sieciowy i interfejs komunikacyjny (zwykle adres URL) serwera MCP, którego aplikacja AI (host klienta MCP) używa do nawiązywania bezpiecznego, standardowego połączenia. Jest to punkt kontaktowy, za pomocą którego LLM może poprosić o kontekst, wywołać narzędzie lub uzyskać dostęp do zasobu. Punkty końcowe MCP Google mogą być globalne lub regionalne.

Serwer MCP interfejsu Maps Grounding Lite API ma ten globalny punkt końcowy MCP:

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

Narzędzia MCP

Narzędzie MCP to funkcja lub możliwość wykonywania, którą serwer MCP udostępnia LLM lub aplikacji AI, aby umożliwić jej wykonanie działania w świecie rzeczywistym.

Narzędzia

Serwer MCP mapstools.googleapis.com ma te narzędzia:

Narzędzia MCP
search_places

Wywołaj to narzędzie, gdy użytkownik chce znaleźć miejsca, firmy, adresy, lokalizacje, ciekawe miejsca lub inne wyszukiwania związane z Mapami Google.

Wymagania dotyczące danych wejściowych (KRYTYCZNE):

  1. text_query (ciąg znaków – WYMAGANY): główne zapytanie. Musi ono jasno określać, czego szuka użytkownik.

    • Przykłady: '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'.
    • Szczegółowe informacje o miejscu: dodaj żądany atrybut (np. 'Google Store Mountain View opening hours', 'SF MoMa phone number', 'Shoreline Park Mountain View address').
  2. location_bias (obiekt – OPCJONALNY): użyj tego parametru, aby nadać priorytet wynikom w pobliżu określonego obszaru geograficznego.

    • Format: {"location_bias": {"circle": {"center": {"latitude": [value], "longitude": [value]}, "radius_meters": [value (optional)]}}}
    • Użycie:
      • Aby nadać priorytet wynikom w promieniu 5 km: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}, "radius_meters": 5000}}}
      • Aby nadać priorytet wynikom w pobliżu środka: {"location_bias": {"circle": {"center": {"latitude": 34.052235, "longitude": -118.243683}}}} (pomijając radius_meters).
  3. language_code (ciąg znaków – OPCJONALNY): język, w którym ma być wyświetlane podsumowanie wyników wyszukiwania.

    • Format: 2-literowy kod języka (ISO 639-1), opcjonalnie z podkreśleniem i 2-literowym kodem kraju (ISO 3166-1 alfa-2), np. en, ja, en_US, zh_CN, es_MX. Jeśli nie podasz kodu języka, wyniki będą wyświetlane w języku angielskim.
  4. region_code (ciąg znaków – OPCJONALNY): kod regionu CLDR Unicode użytkownika. Ten parametr służy do wyświetlania szczegółów miejsca, takich jak nazwa miejsca w danym regionie, jeśli jest dostępna. Parametr może wpływać na wyniki na podstawie obowiązujących przepisów.

    • Format: 2-literowy kod kraju (ISO 3166-1 alfa-2), np. US, CA.

Instrukcje dotyczące wywoływania narzędzia:

  • Informacje o lokalizacji (KRYTYCZNE): wyszukiwanie musi zawierać wystarczającą ilość informacji o lokalizacji. Jeśli lokalizacja jest niejednoznaczna (np. tylko „pizzerie”), musisz ją określić w parametrze text_query (np. „pizzerie w Nowym Jorku”) lub użyć parametru location_bias. Jeśli to konieczne, podaj nazwę miasta, regionu, stanu lub prowincji oraz kraju.

  • Zawsze podawaj jak najbardziej szczegółowe i bogate w kontekst zapytanie text_query.

  • Używaj parametru location_bias tylko wtedy, gdy współrzędne są podane wprost lub gdy wnioskowanie o lokalizacji na podstawie znanego kontekstu użytkownika jest odpowiednie i konieczne do uzyskania lepszych wyników.

  • Wynik musi być przypisany do źródła na podstawie informacji z pola attribution, jeśli jest ono dostępne.

lookup_weather

Pobiera kompleksowe dane pogodowe, w tym bieżące warunki, prognozy godzinowe i dzienne.

Dostępne dane: temperatura (bieżąca, odczuwalna, maksymalna/minimalna, indeks ciepła), wiatr (prędkość, porywy, kierunek), zjawiska astronomiczne (wschód/zachód słońca, faza księżyca), opady (typ, prawdopodobieństwo, ilość), warunki atmosferyczne (indeks UV, wilgotność, zachmurzenie, prawdopodobieństwo burzy) i adres lokalizacji.

Lokalizacja i reguły lokalizacji (KRYTYCZNE):

Lokalizacja, dla której żądane są dane pogodowe, jest określana za pomocą pola location. To pole jest strukturą „oneof”, co oznacza, że aby zapewnić dokładne wyszukiwanie danych pogodowych, MUSISZ podać wartość TYLKO w jednym z 3 pól podrzędnych lokalizacji poniżej.

  1. Współrzędne geograficzne (lat_lng)

    • Użyj tego pola, gdy masz dokładne współrzędne szerokości i długości geograficznej.
    • Przykład: {"location": {"lat_lng": {"latitude": 34.0522, "longitude": -118.2437}}} // Los Angeles
  2. Identyfikator miejsca (place_id)

    • Niejednoznaczny identyfikator ciągu znaków (identyfikator miejsca w Mapach Google).
    • Identyfikator place_id można pobrać za pomocą narzędzia search_places.
    • Przykład: {"location": {"place_id": "ChIJLU7jZClu5kcR4PcOOO6p3I0"}} // Wieża Eiffla
  3. Ciąg znaków adresu (address)

    • Ciąg znaków w dowolnym formacie, który wymaga precyzyjności w przypadku geokodowania.
    • Miasto i region: zawsze podawaj region lub kraj (np. „Londyn, Wielka Brytania”, a nie „Londyn”).
    • Adres ulicy: podaj pełny adres (np. „1600 Pennsylvania Ave NW, Washington, DC”).
    • Kody pocztowe: MUSZĄ być podane z nazwą kraju (np. „90210, USA”, a NIE „90210”).
    • Przykład: {"location": {"address": "1600 Pennsylvania Ave NW, Washington, DC"}}

Tryby użycia:

  • Aktualna pogoda: podaj tylko location. Nie podawaj date ani hour.

  • Prognoza godzinowa: podaj location, date i hour (0–23). Używaj w przypadku konkretnych godzin (np. „o 17:00”) lub wyrażeń takich jak „w ciągu najbliższych kilku godzin” lub „później”. Jeśli użytkownik poda minuty, zaokrąglij je w dół do najbliższej godziny. Prognoza godzinowa na więcej niż 120 godzin nie jest obsługiwana. Historyczne dane pogodowe w podziale na godziny są obsługiwane do 24 godzin wstecz.

  • Prognoza dzienna: podaj location i date. Nie podawaj hour. Używaj w przypadku ogólnych zapytań dotyczących dnia (np. „pogoda na jutro”, „pogoda w piątek”, „pogoda 25 grudnia”). Jeśli w kontekście nie ma dzisiejszej daty, wyjaśnij to użytkownikowi. Prognoza dzienna na więcej niż 10 dni (w tym dzisiejszy) nie jest obsługiwana. Dane historyczne o pogodzie nie są obsługiwane.

Ograniczenia parametrów:

  • Strefy czasowe: wszystkie dane wejściowe date i hour muszą być podane w lokalnej strefie czasowej lokalizacji, a nie w strefie czasowej użytkownika.
  • Format daty: dane wejściowe muszą być rozdzielone na liczby całkowite {year, month, day}.
  • Jednostki: domyślnie ustawione na METRIC. Jeśli użytkownik sugeruje standardy amerykańskie lub wyraźnie o nie prosi, ustaw units_system na IMPERIAL dla stopni Fahrenheita i mil.
  • Wynik musi być przypisany do źródła na podstawie informacji z pola attribution, jeśli jest ono dostępne.

compute_routes

Oblicza trasę podróży między określonym miejscem początkowym a docelowym. Obsługiwane tryby podróży: DRIVE (domyślny), WALK.

Wymagania dotyczące danych wejściowych (KRYTYCZNE): wymagane są miejsce początkowe i miejsce docelowe. Każde z nich musi być podane za pomocą jednej z tych metod, zagnieżdżonej w odpowiednim polu:

  • address: (ciąg znaków, np. „Wieża Eiffla, Paryż”). Uwaga: im bardziej szczegółowy lub konkretny jest adres wejściowy, tym lepsze będą wyniki.

  • lat_lng: (obiekt, {"latitude": liczba, "longitude": liczba})

  • place_id: (ciąg znaków, np. „ChIJOwE_Id1w5EAR4Q27FkL6T_0”) Uwaga: ten identyfikator można uzyskać za pomocą narzędzia search_places. Dozwolona jest dowolna kombinacja typów danych wejściowych (np. miejsce początkowe według adresu, miejsce docelowe według lat_lng). Jeśli brakuje miejsca początkowego lub docelowego, musisz poprosić użytkownika o wyjaśnienie , zanim spróbujesz wywołać narzędzie.

Przykład wywołania narzędzia: {"origin":{"address":"Wieża Eiffla"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"travel_mode":"DRIVE"}

  • Wynik musi być przypisany do źródła na podstawie informacji z pola attribution, jeśli jest ono dostępne.
resolve_names

Rozwiązuje listę zapytań o konkretne lokalizacje (nazwy punktów orientacyjnych lub dokładne adresy) na kanoniczne identyfikatory miejsc w Mapach Google.

Wymagania dotyczące danych wejściowych (KRYTYCZNE):

  1. queries (tablica obiektów – WYMAGANA): lista zapytań o lokalizacje do rozwiązania. Możesz podać maksymalnie 20 zapytań.

    • Każdy obiekt zapytania musi zawierać:
      • text (ciąg znaków – WYMAGANY): zapytanie tekstowe reprezentujące konkretną nazwę miejsca lub adres do rozwiązania.
        • Przykłady: 'Googleplex, Mountain View, CA', '1600 Amphitheatre Pkwy, Mountain View, CA', 'Eiffel Tower, Paris'.
  2. location_bias (obiekt – OPCJONALNY): użyj tego parametru, aby nadać priorytet wynikom w pobliżu określonego obszaru geograficznego.

    • Format: {"viewport": {"low": {"latitude": [value], "longitude": [value]}, "high": {"latitude": [value], "longitude": [value]}}}
  3. region_code (ciąg znaków – OPCJONALNY): kod regionu CLDR Unicode (2-literowy kod kraju, np. US, CA) użytkownika, aby nadać priorytet wynikom.

Instrukcje dotyczące wywoływania narzędzia:

  • Szczegółowość (KRYTYCZNA): zapytania muszą reprezentować konkretną nazwę miejsca lub adres. Ogólne wyszukiwania, takie jak 'restaurants', lub nazwy sieci, takie jak 'Starbucks', nie są obsługiwane.
  • NIE wywołuj tego narzędzia, jeśli narzędzia podrzędne, które chcesz wywołać, akceptują już bezpośrednio surowe ciągi znaków adresu lub nazwy miejsca.

Obsługa błędów (KRYTYCZNA):

  • To jest narzędzie do przetwarzania wsadowego. Żądanie może zwrócić „mieszane wyniki” (np. niektóre zapytania zostaną rozwiązane, a inne nie).
  • Lista wyjściowa results jest gwarantowana, że będzie mapować 1:1 z indeksami wejściowych queries. Nieudane zapytanie spowoduje, że w odpowiednim indeksie na liście results pojawi się pusty komunikat Result (bez ustawionego pola entity).
  • Aby sprawdzić, który konkretny indeks zapytania nie powiódł się, MUSISZ sprawdzić pole mapy failed_requests w odpowiedzi. Klucz failed_requests reprezentuje indeks nieudanego zapytania w żądaniu (liczony od 0). Nie zakładaj, że całe wywołanie zbiorcze nie powiodło się z powodu częściowego niepowodzenia.
resolve_maps_urls

Rozwiązuje listę adresów URL Map Google na kanoniczne identyfikatory miejsc w Mapach Google.

Kiedy należy wywołać to narzędzie (KRYTYCZNE):

  • Użyj tego narzędzia, gdy użytkownik poda co najmniej 1 link lub adres URL udostępniania Map Google (np. „https://maps.app.goo.gl/...”, „https://www.google.com/maps/place/...” lub „https://maps.google.com/...”) i musisz wyodrębnić podstawowe kanoniczne identyfikatory miejsc.
  • W jednym żądaniu zbiorczym możesz podać maksymalnie 20 adresów URL do rozwiązania.

Wymagania dotyczące danych wejściowych (KRYTYCZNE):

  • urls (tablica ciągów znaków – WYMAGANA): lista adresów URL Map Google do rozwiązania. Każdy adres URL musi być prawidłowym adresem URL Map Google dla jednego miejsca.

Obsługa błędów (KRYTYCZNA):

  • To jest narzędzie do przetwarzania wsadowego. Żądanie może zwrócić „mieszane wyniki” (np. niektóre adresy URL zostaną rozwiązane, a inne nie).
  • Lista wyjściowa entities jest gwarantowana, że będzie mapować 1:1 z indeksami wejściowych urls. Nieudane rozwiązanie adresu URL spowoduje, że w odpowiednim indeksie na liście entities pojawi się pusty komunikat Entity (bez ustawionych pól).
  • Aby sprawdzić, który konkretny indeks adresu URL nie powiódł się, MUSISZ sprawdzić pole mapy failed_requests w odpowiedzi. Klucz failed_requests reprezentuje indeks nieudanego adresu URL w żądaniu (liczony od 0). Nie zakładaj, że całe wywołanie zbiorcze nie powiodło się z powodu częściowego niepowodzenia.

Pobieranie specyfikacji narzędzi MCP

Aby pobrać specyfikacje narzędzi MCP dla wszystkich narzędzi na serwerze MCP, użyj metody tools/list. Ten przykład pokazuje, jak użyć curl, aby wyświetlić listę wszystkich narzędzi i ich specyfikacji dostępnych obecnie na serwerze MCP.

Żądanie 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
}'