도구: compute_routes
출발지와 목적지 사이의 이동 경로를 계산하며, 선택적으로 중간 경유지를 포함할 수 있습니다. 각 경로의 거리와 소요 시간을 반환합니다.
입력 요구사항 (중요):
origin및destination(객체 - 필수): 각각 다음 중 하나만 사용하여 제공해야 합니다.address(문자열, 예:'Eiffel Tower, Paris'). 이름이 지정된 장소, 명소, 비즈니스는 직접 확인되므로 경유지를 지오코딩하기 위해 먼저search_places를 호출하지 마세요. 사용자가 언급한 도시, 지역 또는 국가를 포함합니다.lat_lng(객체,{"latitude": number, "longitude": number}).place_id(문자열, 예:'ChIJOwE_Id1w5EAR4Q27FkL6T_0')(예:search_places)
intermediate_waypoints(객체 배열 - 선택사항): 출발지와 목적지 사이에 순서대로 통과할 최대 10개의 경유지입니다.origin와 동일한 형식입니다.TRANSIT에서는 지원되지 않습니다. 사용자가 요청한 경유지만 포함합니다.travel_mode(enum - 선택사항):DRIVE(기본값),WALK,BICYCLE또는TRANSITTiming(선택사항 - 최대 1개 설정): UTC 오프셋이 있는 RFC 3339 타임스탬프(예:
'2026-09-19T08:00:00-07:00') 기본값은 지금 출발입니다.TRANSIT의 경우 시간은 과거 최대 7일 또는 미래 최대 100일일 수 있습니다. 다른 모드의 경우 시간은 미래의 최대 365일일 수 있으며 과거가 아니어야 합니다.departure_time: 사용자가 출발 시간을 말할 때 사용합니다 (예: '내일 오전 8시').arrival_time: 사용자가 도착해야 하는 시간을 말할 때 사용합니다 (예: '오전 9시까지 도착').
routing_preference(enum - 선택사항):ROUTING_PREFERENCE_TRAFFIC_UNAWARE(기본값): 실시간 교통정보, 교통체증 상황, 도로 폐쇄를 무시합니다. 가장 짧은 지연 시간ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL: 가능한 경우 실시간 교통 상황을 사용합니다.WALK또는BICYCLE에는 지원되지 않습니다. 사용자가 교통정보, 혼잡도 또는 교통 상황이 반영된 도착 예정 시간에 대해 문의하는 경우에만 설정합니다. 비용과 지연 시간이 더 많이 발생합니다.
location_bias(객체 - 선택사항): 경유지 주소에서 장소 이름의 모호성을 해소하는 데 사용되는{"latitude": number, "longitude": number}입니다. 이름이 모호하고 (예: 'Springfield') 사용자가 지역을 제공하지 않은 경우address에 지정된 이름을 유지하고 지역을 추측하는 대신 의도한 지역을 향해location_bias를 설정합니다.compute_alternative_routes(불리언 - 선택사항): 사용자가 경로 옵션 또는 대안을 요청하는 경우에만true로 설정합니다. 기본값은false이며, 추천 경로만 반환합니다.include_polyline(불리언 - 선택사항): 경로 도형 (encoded_polyline)이 필요한 경우에만true로 설정합니다. 기본값은false입니다.
도구 호출 안내:
- 출발지 또는 목적지가 누락된 경우 도구를 호출하기 전에 사용자에게 명확한 설명을 요청해야 합니다.
- 'A는 B에서 얼마나 멀리 떨어져 있나요?'라는 질문의 경우 B를
origin로, A를destination로 사용합니다.
도구 호출 예시: {"origin":{"address":"Eiffel Tower"},"destination":{"place_id":"ChIJt_5xIthw5EARoJ71mGq7t74"},"intermediate_waypoints":[{"address":"Louvre Museum"}],"travel_mode":"DRIVE","departure_time":"2026-09-19T08:00:00+02:00"}
응답 안내:
- 대체 경로가 요청되면 경로가 가장 추천되는 경로에서 가장 추천되지 않는 경로 순으로 정렬됩니다.
routes가 비어 있으면 사용자에게 경로를 찾을 수 없다고 알립니다. 경로를 추측하지 마세요.- 도구에서 반환한 사실만 언급하세요. 세부 경로 안내, 대중교통 노선, 역, 승강장, 환승 정보를 지어내지 마세요.
- 그라운딩된 출력은 가능한 경우 각 경로의
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 ( |
| 필드 | |
|---|---|
origin |
필수 항목입니다. 출발지 경유지입니다. |
destination |
필수 항목입니다. 목적지 경유지입니다. |
travelMode |
선택사항입니다. 이동 수단을 지정합니다. |
intermediateWaypoints[] |
선택사항입니다. 출발지와 목적지 사이에서 순서대로 통과할 중간 경유지입니다. 중간 경유지는 최대 10개까지 지원됩니다. |
routingPreference |
선택사항입니다. 경로를 계산하는 데 교통정보 데이터를 사용하는 방법을 결정합니다. |
locationBias |
선택사항입니다. 검색 결과에 편향을 적용할 위치입니다(예: 경유지 텍스트 검색어의 모호성 해소). |
includePolyline |
선택사항입니다. 응답 경로에 인코딩된 다중선을 포함할지 여부입니다. 기본값은 |
computeAlternativeRoutes |
선택사항입니다. 추천 경로 외에 대체 경로를 계산할지 여부입니다. 기본값은 false이며, 이 경우 추천 경로만 반환됩니다. true로 설정하면 사용 가능한 모든 경로가 반환되지만, 모든 요청에 대해 대체 경로가 제공되지 않을 수도 있습니다. |
통합 필드 timing. 출발지에서 출발하거나 최종 경유지에 도착하는 시간을 지정합니다. 지정하지 않으면 기본적으로 현재 시간에 출발합니다. TRANSIT의 경우 시간은 최대 7일 전, 최대 100일 후여야 합니다. 다른 이동 수단의 경우 시간은 과거가 아니어야 하며 최대 365일 이후여야 합니다. timing은 다음 중 하나일 수 있습니다. |
|
departureTime |
선택사항입니다. 출발 시간을 기준으로 경로를 계산해야 함을 나타냅니다. 생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 |
arrivalTime |
선택사항입니다. 도착 시간을 기준으로 경로를 계산해야 함을 나타냅니다. 생성된 출력은 항상 Z-정규화되고 소수점 이하 0, 3, 6 또는 9자리인 RFC 3339를 사용합니다. 'Z' 이외의 오프셋도 허용됩니다. 예를 들면 |
타임스탬프
| JSON 표현 |
|---|
{ "seconds": string, "nanos": integer } |
| 필드 | |
|---|---|
seconds |
유닉스 시간 1970-01-01T00:00:00Z 이후 경과된 UTC 시간을 초 단위로 나타냅니다. -62135596800~253402300799(양 끝값 포함) 사이여야 합니다(0001-01-01T00:00:00Z~9999-12-31T23:59:59Z에 해당). |
nanos |
나노초 단위의 음수가 아닌 초수입니다. 이 필드는 기간의 나노초 부분이며 초를 대체하지 않습니다. 음수의 초수 값에는 시간에 반영되는 음수가 아닌 나노초 값이 있어야 합니다. 0~999,999,999(포함) 사이여야 합니다. |
경유지
| JSON 표현 |
|---|
{ // Union field |
| 필드 | |
|---|---|
통합 필드 location_type. 위치를 나타내는 다양한 방법 location_type은 다음 중 하나여야 합니다. |
|
latLng |
지리적 좌표를 사용하여 지정된 지점입니다. |
placeId |
경유지와 연결된 장소 ID입니다. |
address |
사람이 읽을 수 있는 주소 또는 Plus Code입니다. 자세한 내용은 https://plus.codes를 참고하세요. |
LatLng
| JSON 표현 |
|---|
{ "latitude": number, "longitude": number } |
| 필드 | |
|---|---|
latitude |
위도입니다. 범위는 [-90.0, +90.0]입니다. |
longitude |
경도입니다. 범위는 [-180.0, +180.0]입니다. |
RouteTravelMode
이동 수단을 지정하는 데 사용되는 값 집합입니다.
| 열거형 | |
|---|---|
ROUTE_TRAVEL_MODE_UNSPECIFIED |
지정된 이동 수단이 없습니다. 기본값은 DRIVE입니다. |
DRIVE |
승용차로 이동합니다. |
WALK |
걸어서 이동합니다. 참고: WALK 경로는 베타 버전이며 명확한 보도 또는 보행자 전용 도로가 누락될 수 있습니다. 앱에 표시하는 모든 도보 경로에 대해 이 경고를 사용자에게 표시해야 합니다. |
BICYCLE |
자전거로 이동합니다. |
TRANSIT |
대중교통으로 이동 |
RoutingPreference
경로를 계산할 때 고려해야 할 요소를 지정하는 값 집합입니다.
| 열거형 | |
|---|---|
ROUTING_PREFERENCE_UNSPECIFIED |
라우팅 환경설정이 지정되지 않았습니다. 기본값은 ROUTING_PREFERENCE_TRAFFIC_UNAWARE입니다. |
ROUTING_PREFERENCE_TRAFFIC_UNAWARE |
실시간 교통 상황을 고려하지 않고 경로를 계산합니다. 교통 상황이 중요하지 않거나 적용되지 않는 경우에 적합합니다. 이 값을 사용하면 지연 시간이 가장 짧습니다. |
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL |
교통정보 데이터를 사용할 수 있는 경우 실시간 교통 상황을 고려하여 경로를 계산합니다. 이 값은 Pro 등급을 트리거하며 더 높은 청구 비용과 지연 시간이 발생합니다. 이 기능은 허용 목록에 포함된 고객만 사용할 수 있습니다. 허용 목록에 추가되지 않은 경우 요청은 |
출력 스키마
ComputeRoutesResponse
ComputeRoutesResponse
| JSON 표현 |
|---|
{
"routes": [
{
object ( |
| 필드 | |
|---|---|
routes[] |
요청된 출발지와 목적지 사이의 경로가 포함되며, 가장 추천하는 경로에서 가장 추천하지 않는 경로 순으로 정렬됩니다. |
경로
| JSON 표현 |
|---|
{
"distanceMeters": integer,
"duration": string,
"attribution": {
object ( |
| 필드 | |
|---|---|
distanceMeters |
경로의 이동 거리(미터)입니다. |
duration |
경로를 탐색하는 데 필요한 시간입니다. 소수점 아래가 최대 9자리까지이고 ' |
attribution |
경로와 함께 표시할 필수 저작자 표시입니다. |
encodedPolyline |
경로의 인코딩된 다중선입니다. https://developers.google.com/maps/documentation/utilities/polylinealgorithm을 참고하세요. |
retrievalToken |
SearchAlongRoute와 같은 다운스트림 도구에서 이 특정 경로를 검색하는 데 사용할 수 있는 토큰입니다. 10분 동안 유효합니다. |
기간
| JSON 표현 |
|---|
{ "seconds": string, "nanos": integer } |
| 필드 | |
|---|---|
seconds |
기간의 부호 있는 초입니다. -315,576,000,000~+315,576,000,000(포함) 사이여야 합니다. 참고: 이 경계는 60초/분 * 60분/시간 * 24시간/일 * 365.25일/년 * 10,000년으로 계산됩니다. |
nanos |
기간의 나노초 단위로 부호가 있는 초수입니다. 1초 미만의 기간은 0 |
기여 분석
| JSON 표현 |
|---|
{ "title": string, "url": string } |
| 필드 | |
|---|---|
title |
저작자 표시에 표시할 제목입니다. |
url |
저작자 표시를 위해 연결할 URL입니다. |
도구 주석
도구 주석은 MCP 클라이언트에 전송되어 특정 도구의 기본 위험을 설명합니다. 대부분의 클라이언트는 이러한 힌트를 신뢰할 수 없는 것으로 취급하지만, 확인 메시지가 사용자에게 전송될 수 있는 시점을 결정하는 데 사용할 수 있습니다.
제목 문자열과 함께 다음 불리언 힌트가 정의됩니다.
readOnlyHint: true인 경우 도구가 환경을 수정하지 않습니다. 기본값: false.destructiveHint: true인 경우 도구에서 파괴적인 작업을 수행할 수 있습니다. false이면 도구는 추가 작업만 수행할 수 있습니다. 기본값은 true입니다.idempotentHint: true인 경우 동일한 인수로 도구를 반복적으로 호출해도 환경에 추가적인 영향을 미치지 않습니다. 기본값: false.openWorldHint: true인 경우 도구는 외부 항목의 '오픈 월드'와 상호작용할 수 있습니다. false이면 도구는 내부 항목과만 상호작용할 수 있습니다. 예를 들어 웹 검색 도구는 오픈 월드이지만 메모리 도구는 오픈 월드가 아닙니다.
Destructive Hint: ❌ | Idempotent Hint: ❌ | Read Only Hint: ✅ | Open World Hint: ❌