Narzędzie: resolve_maps_urls
Rozpoznaje listę adresów URL Map Google i przekształca je w kanoniczne identyfikatory miejsc w Mapach Google.
Kiedy wywołać to narzędzie (KRYTYCZNE):
- Użyj tego narzędzia, gdy użytkownik poda co najmniej 1 link lub adres URL udostępniania w Mapach 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 określić maksymalnie 20 adresów URL do rozpoznania.
Wymagania dotyczące danych wejściowych (KRYTYCZNE):
urls(tablica ciągów znaków – WYMAGANE): lista adresów URL Map Google do rozpoznania. Każdy adres URL musi być prawidłowym adresem URL Map Google wskazującym jedno miejsce.
Zapisywanie w Mapach Google:
- Odpowiedź zawiera pole
save_to_maps_url: pojedynczy link do Map Google zawierający wszystkie miejsca, które udało się znaleźć. - Gdy użytkownik chce zapisać, udostępnić lub otworzyć znalezione miejsca jako listę w Mapach Google (np. zbierając miejsca udostępnione w rozmowie), wyświetl mu ten link. NIE twórz tego linku samodzielnie.
Obsługa błędów (KRYTYCZNE):
- To 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
entitiesjest gwarantowana do mapowania 1:1 z indeksami wejściowymiurls. Niepowodzenie rozpoznania adresu URL spowoduje wyświetlenie pustego komunikatuEntity(nie ustawiono żadnych pól) w odpowiednim indeksie na liścieentities. - MUSISZ sprawdzić pole mapy
failed_requestsw odpowiedzi, aby określić, który indeks adresu URL nie został utworzony. Kluczfailed_requestsreprezentuje 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 błędu.
Poniższy przykładowy kod pokazuje, jak używać curl do wywoływania narzędzia MCP resolve_maps_urls.
| Żądanie 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 }' |
Schemat wejściowy
Komunikat żądania dla ResolveMapsUrls.
ResolveMapsUrlsRequest
| Zapis JSON |
|---|
{ "urls": [ string ] } |
| Pola | |
|---|---|
urls[] |
Wymagane. Adresy URL Map Google do rozpoznania. Każdy adres URL powinien być prawidłowym adresem URL Map Google, np. https://maps.app.goo.gl/..., https://www.google.com/maps/place/... lub https://maps.google.com/.... Obecnie obsługiwane są tylko adresy URL wskazujące jedno miejsce. Możesz podać maksymalnie 20 adresów URL. |
Schemat wyjściowy
Wiadomość z odpowiedzią dla ResolveMapsUrls.
ResolveMapsUrlsResponse
| Zapis JSON |
|---|
{ "entities": [ { object ( |
| Pola | |
|---|---|
entities[] |
Tylko dane wyjściowe. Lista rozpoznanych elementów z adresów URL Map Google. Gwarantowane mapowanie 1:1 z indeksami |
failedRequests |
Tylko dane wyjściowe. Mapa zawierająca informacje o częściowych błędach adresów URL Map Google. Kluczem jest indeks nieudanego żądania w polu Obiekt zawierający listę par |
saveToMapsUrl |
Tylko dane wyjściowe. link do zapisania wszystkich prawidłowo rozpoznanych podmiotów w Mapach Google. |
Jednostka
| Zapis JSON |
|---|
{ // Union field |
| Pola | |
|---|---|
Pole zbiorcze entity. Rozpoznany typ encji. entity może mieć tylko jedną z tych wartości: |
|
place |
Nazwa zasobu rozpoznanego miejsca. |
FailedRequestsEntry
| Zapis JSON |
|---|
{
"key": integer,
"value": {
object ( |
| Pola | |
|---|---|
key |
|
value |
|
Stan
| Zapis JSON |
|---|
{ "code": integer, "message": string, "details": [ { "@type": string, field1: ..., ... } ] } |
| Pola | |
|---|---|
code |
Kod stanu, który powinien być wartością wyliczeniową |
message |
Komunikat o błędzie widoczny dla programisty, który powinien być w języku angielskim. Wszelkie komunikaty o błędach dla użytkowników powinny być zlokalizowane i wysyłane w polu |
details[] |
Lista wiadomości zawierających szczegóły błędu. Na potrzeby interfejsów API dostępny jest wspólny zestaw typów wiadomości. Obiekt zawierający pola dowolnego typu. Dodatkowe pole |
Dowolna
| Zapis JSON |
|---|
{ "typeUrl": string, "value": string } |
| Pola | |
|---|---|
typeUrl |
Identyfikuje typ zserializowanej wiadomości Protobuf za pomocą odwołania do identyfikatora URI składającego się z prefiksu kończącego się ukośnikiem i pełnej i jednoznacznej nazwy typu. Przykład: type.googleapis.com/google.protobuf.StringValue Ten ciąg znaków musi zawierać co najmniej 1 znak Prefiks jest dowolny, a implementacje Protobuf powinny po prostu usuwać wszystko do ostatniego znaku Wszystkie ciągi adresów URL typów muszą być prawidłowymi odwołaniami do identyfikatorów URI z dodatkowym ograniczeniem (w przypadku formatu tekstowego), zgodnie z którym treść odwołania może składać się tylko ze znaków alfanumerycznych, znaków ucieczki zakodowanych procentowo i znaków z tego zestawu (bez zewnętrznych ukośników lewych): W pierwotnym projekcie |
value |
Zawiera serializację Protobuf typu opisanego przez type_url. Ciąg znaków zakodowany w formacie base64. |
Adnotacje dotyczące narzędzi
Adnotacje narzędzi są wysyłane do klientów MCP, aby opisać podstawowe ryzyko związane z danym narzędziem. Większość klientów traktuje te wskazówki jako niezaufane, ale można ich użyć do określenia, kiedy wysłać użytkownikowi prośbę o potwierdzenie.
Oprócz ciągu tytułu zdefiniowane są te wskazówki logiczne:
readOnlyHint: jeśli ma wartość „true”, narzędzie nie modyfikuje swojego środowiska. Wartość domyślna: false.destructiveHint: jeśli ma wartość „true”, narzędzie może wykonywać działania destrukcyjne. Jeśli ma wartość false, narzędzie może wykonywać tylko działania dodawania. Wartość domyślna: true.idempotentHint: jeśli ma wartość „true”, wielokrotne wywoływanie narzędzia z tymi samymi argumentami nie będzie miało dodatkowego wpływu na jego środowisko. Wartość domyślna: false.openWorldHint: jeśli ma wartość true, narzędzie może wchodzić w interakcje z „otwartym światem” elementów zewnętrznych. Jeśli ma wartość false, narzędzie może wchodzić w interakcje tylko z elementami wewnętrznymi. Na przykład narzędzie do wyszukiwania w internecie jest narzędziem typu Otwarty świat, ale narzędzie do zapamiętywania już nie.
Wskazówka dotycząca destrukcyjności: ❌ | Wskazówka dotycząca idempotencji: ❌ | Wskazówka dotycząca tylko do odczytu: ✅ | Wskazówka dotycząca otwartego świata: ❌