Maps Experience 에이전트 도구 (이전 명칭: Maps Grounding Lite)는 Google 지도의 신뢰할 수 있는 지리 공간 데이터로 AI 애플리케이션을 그라운딩하는 모델 컨텍스트 프로토콜 (MCP)을 지원하는 Google Maps Platform 서비스입니다. MCP 서버는 LLM이 장소, 날씨, 경로 데이터에 액세스할 수 있는 도구를 제공합니다. 다른 도구는 위치 이름과 Google 지도 URL을 장소 ID로 변환합니다. MCP 서버를 지원하는 모든 도구에서 사용 설정하여 지도 환경 에이전트 도구를 사용해 볼 수 있습니다.
지도 환경 에이전트 도구는 Essentials와 Pro라는 두 가지 SKU가 있는 하나의 제품입니다. Pro 옵션을 사용하지 않는 한 모든 요청은 Essentials로 청구됩니다. Pro 옵션은 확장된 장소 세부정보, 검색당 더 많은 장소, 경로당 더 많은 중간 경유지, 실시간 교통정보를 사용한 경로를 추가합니다. 제한된 GA 기간에는 Pro 옵션이 Pro 허용 목록에 있는 프로젝트에만 제공됩니다. 두 SKU 모두 동일한 MCP 서버, 도구, 사용자 인증 정보를 사용합니다. 자세한 내용은 Essentials 및 Pro를 참고하세요.
도구
지도 환경 에이전트 도구를 사용하면 LLM이 다음 Google 지도 기능에 액세스할 수 있습니다.
- 장소 검색: 장소에 관한 정보를 요청하고 AI 생성 요약을 확인합니다. 응답에는 요약에 있는 각 장소의 장소 ID, 좌표, Google 지도 링크도 포함됩니다. 장소 ID와 좌표를 다른 Google Maps Platform API와 함께 사용하여 지도에 장소를 표시할 수 있습니다. Pro를 사용하면 리뷰 통계와 같은 확장된 장소 세부정보를 요청할 수 있으며 요청당 최대 10개의 장소를 요청할 수 있습니다.
- 날씨 조회: 날씨에 대한 정보를 요청하고 현재 상태, 시간별 예보, 일일 예보를 반환합니다.
경로 계산: 출발지와 목적지 간의 경로를 요청하고(원하는 경우 중간 경유지 포함) 경로의 거리와 소요 시간을 반환합니다. Pro를 사용하면 경로에서 실시간 교통상황을 고려하고 더 많은 중간 경유지를 포함할 수 있습니다.
이름 확인 및 지도 URL 확인: 위치 이름, 주소, Google 지도 URL을 장소 ID로 확인합니다. 자세한 내용은 Resolution API를 참조하세요.
MCP 서버를 사용 설정하면 LLM은 도구를 호출하여 이러한 데이터 유형에 대한 그라운딩 정보를 가져올 수 있습니다. LLM은 이 정보를 컨텍스트로 사용할 수 있습니다. 하지만 최종 대답에는 MCP 서버가 반환한 정확한 정보가 포함되지 않을 수 있습니다. 생성된 대답의 정확성을 확인해야 합니다.
Essentials 및 Pro
Essentials 및 Pro는 별도의 제품이나 요금제가 아닌 동일한 제품의 두 SKU입니다. Pro 옵션을 사용하는 경우 Pro로 요청이 청구됩니다. 다른 모든 요청은 Essentials로 청구됩니다. Pro 옵션은 도구 요청의 일반 필드이므로 LLM이 이를 대신 사용할 수 있습니다. 에이전트는 동일한 대화에서 두 SKU를 모두 사용할 수도 있습니다. 예를 들어 에이전트는 Essentials를 사용하여 명소 근처의 커피숍을 찾을 수 있습니다. 그런 다음 Pro를 사용하여 시그니처 음료와 좌석에 관한 후속 질문에 답변할 수 있습니다. Pro에는 별도의 MCP 서버, 엔드포인트 또는 사용자 인증 정보가 없습니다.
Essentials, Pro, Google 지도 기반 그라운딩 비교
Google 지도 기반 그라운딩은 별도의 제품입니다. Gemini API, Google AI Studio, Gemini Enterprise Agent Platform의 Gemini 모델에 기본 제공됩니다. 모델은 Google 지도에 쿼리할 시점을 결정하고 인용과 함께 그라운딩된 답변을 반환합니다. Gemini를 기반으로 빌드하고 모델이 그라운딩을 처리하도록 하려면 Google 지도 기반 그라운딩을 선택하세요. 다른 모델 또는 에이전트 프레임워크를 사용하거나 각 도구 호출을 직접 제어하려면 지도 환경 에이전트 도구를 선택하세요.
| 지도 환경 에이전트 도구 | Google 지도를 사용한 그라운딩 | ||
|---|---|---|---|
| Essentials SKU (이전 명칭: 지도 그라운딩 라이트) |
Pro SKU | ||
| 요청 청구 방식 | Pro 옵션을 사용하지 않는 각 도구 요청 | Pro 옵션을 사용하는 각 도구 요청:
include_extended_details,
5를 초과하는 page_size,
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL 또는 10개를 초과하는 중간 경유지 |
각 Google 지도 쿼리 또는 그라운딩된 프롬프트(플랫폼 및 모델에 따라 다름) |
| 모델 및 플랫폼 | MCP를 지원하는 모든 모델 또는 에이전트 프레임워크 두 SKU 모두에 대해 하나의 MCP 서버, 하나의 도구 세트, 동일한 사용자 인증 정보 사용 | Gemini API, Google AI Studio, Gemini Enterprise Agent Platform의 Gemini 모델 | |
| 도구가 반환하는 항목 | 핵심 정보: 검색당 최대 5개 장소의 장소 세부정보, 실시간 교통정보가 없는 경로 거리 및 소요 시간, 현재 날씨 및 일기예보 | Essentials의 모든 기능과 더불어 확장된 장소 세부정보 (예: 리뷰에서 얻은 유용한 정보), 검색당 최대 10개의 장소, 실시간 교통정보가 포함된 경로, 최대 25개의 중간 경유지 | 리뷰에서 가져온 장소 세부정보 및 통계, 실시간 교통정보가 포함된 경로 정보 |
| 요청 예 | 사실 및 물류 관련 질문: 매장 또는 비즈니스 찾기, 영업시간, 주소, 거리 또는 이동 시간 추정치 | 주관적이거나 광범위한 질문: 분위기, 대표 요리, 방문자 팁, 6~10개 장소 비교, 현재 교통 상황에서의 이동 시간 | Gemini의 대화형 검색, 여행 일정 계획, 지역 탐색 |
| 장소 UI 키트 시각화 | 에이전트형 데이터 시각화 토큰 (프리뷰)에 추가 비용 없이 포함됨 | 별도로 청구됩니다. | |
| 월별 무료 사용량 | 요청 10,000개 | 요청 5,000개 | 플랫폼 및 모델에 따라 다릅니다. 예를 들어 Gemini API에서 Gemini 3 이상 모델에는 월 5,000개의 무료 검색어가 포함됩니다. 그 이후에는 검색어 1,000개당 $14가 청구됩니다. |
| 사용한 만큼만 지불하는 요금 | 요청 1,000회당 $7.00(대량 구매 할인 적용) | 요청 1,000건당 $14.00 대량 구매 가격은 영업팀에 문의하세요. | |
| 구독을 통한 절감 혜택 | Essentials 및 Pro 요금제에 포함됨 | 미포함 | 사용 불가 |
| 시작하기 | 두 SKU 모두에 대해 하나의 설정: MCP 서버를 사용하도록 LLM 구성을 참고하세요. 제한된 정식 버전 기간에는 Pro 옵션에도 Pro 허용 목록에 있는 프로젝트가 필요합니다. | Gemini API 또는 Agent Platform | |
이러한 옵션은 이동 수단, 출발 및 도착 시간, 대체 경로, 경로 다중선, 날씨 조회, Resolution API 등 두 SKU에서 동일한 방식으로 작동합니다. 요청이 청구되는 SKU는 변경되지 않습니다.
Pro SKU로 청구되는 항목
| 도구 | 기능 | Essentials | Pro |
|---|---|---|---|
| 장소 검색 | 요청당 장소 수 | 최대 5개 | 6~10 (page_size: 6~10) |
| 검색 요약의 확장된 장소 세부정보 (리뷰에서 얻은 유용한 정보, 메뉴 하이라이트, 분위기, 장소의 혼잡도, 방문자 팁, 근접성 검색어의 거리 또는 이동 시간) | 사용 불가 | include_extended_details에서 사용 가능 |
|
| 경로 계산 | 라우팅 환경설정 | 실시간 교통정보를 고려하지 않음 | ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL를 사용하여 실시간 교통정보 또는 대중교통 경로의 실시간 대중교통 데이터를 고려합니다. |
| 경로당 중간 경유지 | 최대 10명 | 11~25개(intermediate_waypoints 11개 이상) |
|
| 날씨 조회 및 Resolution API | Pro 옵션 없음 모든 요청은 Essentials SKU로 청구됩니다. | ||
각 기능을 사용 설정하는 요청 옵션은 장소 검색 및 경로 계산을 참고하세요.
제한된 정식 버전 기간 중 Pro 옵션
제한된 정식 버전 중에는 Pro 허용 목록에 있는 Google Cloud 프로젝트에서만 Pro 옵션을 사용할 수 있습니다. 액세스를 요청하려면 영업팀에 문의하세요. 프로젝트가 허용 목록에 추가되면 프로젝트의 모든 API 키와 OAuth 클라이언트가 Pro 옵션을 사용할 수 있습니다.
프로젝트가 아직 허용 목록에 없으면 Pro 옵션을 사용하는 요청은 다음과 같이 처리됩니다.
- 장소 검색:
include_extended_details는 무시되며,page_size를 더 높게 설정하더라도 응답에는 최대 5개의 장소가 포함됩니다. 요청은 Essentials SKU로 청구됩니다. - 경로 계산:
ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL는ROUTING_PREFERENCE_TRAFFIC_UNAWARE로 처리되며 요청은 Essentials SKU로 청구됩니다. 중간 경유지가 10개를 초과하는 요청은INVALID_ARGUMENT오류를 반환합니다.
프로젝트가 허용 목록에 있는지 확인하려면 page_size를 10으로 설정하여 search_places 요청을 전송합니다. restaurants in
Chicago와 같은 광범위한 쿼리를 사용합니다. 허용 목록에 있는 프로젝트는 Pro SKU로 청구되는 5개 이상의 장소를 반환할 수 있습니다. 다른 프로젝트는 최대 5개의 장소를 반환합니다.
Pro 사용 제어
프로 옵션은 기본적으로 사용 중지되어 있습니다. LLM은 사용자의 요청이 이를 요구하고 도구 스키마 또는 지침에서 허용하는 경우 이를 설정합니다. 도구 스키마는 최대 5개의 page_size 값과 최대 10개의 중간 경유지를 설명합니다.
따라서 모델은 요청 사항에서 요청하는 경우에만 더 높은 Pro 한도를 사용합니다. 비용을 관리하려면 다음 안내를 따르세요.
- 모델에 Pro 옵션이 적합한 경우를 알려줍니다. 예: '사용자가 리뷰, 메뉴 또는 분위기에 대해 질문하는 경우에만
include_extended_details를 설정합니다.' 또는 '사용자가 현재 이동 시간을 요청하는 경우에만ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL를 사용하세요.' - 에이전트를 Essentials SKU로 유지하려면 모델에 Pro 옵션을 사용하지 않도록 지시합니다. Pro 옵션은
include_extended_details,page_size(5개 이상),ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL, 10개 이상의 중간 경유지입니다. MCP 클라이언트가 도구 인수를 제한할 수 있는 경우 도구 구성에서 해당 값을 차단할 수도 있습니다. - 결제 보고서에서 사용량을 모니터링하고 예산 알림을 설정합니다.
Resolution API
지도 환경 에이전트 도구는 Resolution API를 제공합니다. 자유 형식의 위치 텍스트와 URL을 구조화된 Google 지도 장소 식별자로 변환합니다. Resolution API는 MCP 서버에서 REST 메서드 및 도구로 사용할 수 있습니다.
- 이름 확인(REST, MCP): Google 지도에서 위치 이름 또는 주소 배치를 특정 장소 엔티티로 확인합니다. 이는 비정형 사용자 쿼리를 안정적인 장소 ID로 그라운딩하는 데 유용합니다.
- 지도 URL 확인(REST, MCP): Google 지도 URL 배치를 특정 장소 항목으로 확인합니다. 지원되는 형식에는 표준 장소 URL과 단축 URL이 포함됩니다.
반환된 장소 ID를 다른 Google Maps Platform API와 함께 사용할 수 있습니다. 각 응답에는 확인된 장소를 Google 지도에 목록으로 저장하는 링크도 포함됩니다.
자세한 내용은 Maps Tools Resolution API를 참고하세요.
샘플 앱 사용해 보기(새 탭에서 열기)
결제 및 할당량
청구 방식
Google Maps Platform 사용한 만큼만 지불 가격 책정 모델을 사용하면 지도 환경 에이전트 도구의 사용량이 요청별로 계산됩니다. 각 요청은 하나의 결제 이벤트를 나타냅니다. 사용량은 각 제품 SKU에 따라 추적됩니다. 청구서에는 총 청구 금액 외에 각 SKU의 광고 항목이 표시됩니다. 자세한 내용은 보고 개요를 참고하세요.
각 장소 검색, 경로 계산 또는 날씨 조회 요청은 Essentials 또는 Pro 중 정확히 하나의 SKU로 청구됩니다. Pro 옵션을 사용하는 요청은 Pro SKU로 청구됩니다. 두 SKU 모두에 요금이 청구되지 않으며 Pro 옵션 수에 따라 요금이 변경되지 않습니다. 다음 옵션에 따라 SKU가 결정됩니다.
| 도구 | Essentials | Pro |
|---|---|---|
search_places |
Pro 옵션이 없는 요청: page_size가 5개 이하이고 include_extended_details가 설정되지 않았거나 false인 경우 |
include_extended_details가 true로 설정되거나 page_size가 6~10으로 설정됨 |
compute_routes |
Pro 옵션이 없는 요청: routing_preference 설정되지 않음 또는 ROUTING_PREFERENCE_TRAFFIC_UNAWARE, 중간 경유지 10개 이하, 모든 이동 수단 |
routing_preference가 ROUTING_PREFERENCE_TRAFFIC_AWARE_OPTIMAL로 설정되거나 중간 경유지가 11~25개인 경우 |
lookup_weather |
모든 요청 | — |
Essentials 가격은 Essentials SKU 세부정보를 참조하세요. Pro 요청은 매월 처음 5,000개 요청 이후 요청 1,000개당 $14.00로 청구됩니다. 대량 구매 가격은 영업팀에 문의하세요.
제한된 정식 버전 기간에는 Pro 옵션이 Pro 허용 목록에 있는 프로젝트에만 적용됩니다. 자세한 내용은 제한된 정식 버전 중 Pro 옵션을 참조하세요.
가격 책정에 대한 자세한 내용은 기본 가격 책정표 및 인도 가격 책정표를 참조하세요.
Resolution API 요청 (ResolveNames 및 ResolveMapsUrls)은 Places API 텍스트 검색 Essentials (ID만 해당) SKU에 따라 무료로 청구됩니다.
Essentials SKU 사용량은 Essentials 및 Pro 정기 결제 할인 패키지에도 포함됩니다. Pro SKU는 정기 구매 할인 패키지에 포함되지 않습니다.
할당량
지도 환경 에이전트 도구에서 제공하는 도구 및 API에는 다음 할당량이 적용됩니다.
- 장소 검색: 프로젝트당 분당 쿼리 300개
- 날씨 조회: 프로젝트당 분당 쿼리 300개
- 경로 계산: 프로젝트당 분당 쿼리 300개
- 이름 확인: 프로젝트당 분당 쿼리 600개
- 지도 URL 확인: 프로젝트당 분당 600개의 쿼리
할당량은 도구별로 계산되며 Essentials 및 Pro SKU에서 공유됩니다. Pro 요청은 동일한 도구에 대한 Essentials 요청과 동일한 할당량을 사용합니다.
각 Resolution API 요청은 포함된 항목 수와 관계없이 하나의 쿼리로 계산됩니다.
정책 및 서비스 약관
지도 환경 에이전트 도구에는 서비스별 약관을 포함한 Google Maps Platform 서비스 약관이 적용됩니다. 이 섹션에서는 호환되는 LLM 및 소스 저작자 표시를 포함하여 지도 환경 에이전트 도구의 추가 사용 요구사항을 설명합니다. 요구사항은 요청이 청구되는 SKU와 관계없이 모든 결과에 적용됩니다.
호환되는 LLM 요구사항
Google Maps Platform 서비스 약관을 준수하는 LLM에서만 지도 환경 에이전트 도구를 사용할 수 있습니다.
예를 들어 Google 지도 콘텐츠가 사용자가 선택한 LLM에 의해 캐시되거나, 저장되거나, LLM을 개선하는 데 사용되지 않도록 할 책임은 사용자에게 있습니다. 지도 환경 에이전트 도구를 사용하기 전에 지도 환경 에이전트 도구와 함께 사용하려는 모델의 서비스 약관을 검토해야 합니다. 모델에 입력된 데이터를 모델 학습 또는 개선에 사용하는 모델과 함께 지도 환경 에이전트 도구를 사용해서는 안 됩니다. 모델 사용이 서비스별 약관을 포함한 Google Maps Platform 서비스 약관의 Google 지도 콘텐츠 제한사항을 완전히 준수하는지 확인할 책임은 사용자에게 있습니다.
Google 지도 소스의 저작자 표시 요구사항
지도 환경 에이전트 도구의 각 도구 응답에는 소스가 포함됩니다. 지도 환경 에이전트 도구의 결과를 표시할 때는 연결된 Google 지도 소스를 포함하고 다음 요구사항을 충족해야 합니다.
- Google 지도 소스는 해당 소스를 뒷받침하는 생성된 콘텐츠 직후에 따라와야 합니다. 이 생성된 콘텐츠를 그라운딩 출력이라고도 합니다.
- Google 지도 소스는 단일 사용자 상호작용 내에서 확인 가능해야 합니다.
장소 검색 도구의 소스
search_places 도구 places 필드는 summary를 지원하는 소스를 제공합니다. places의 경우 다음 메타데이터가 반환됩니다.
place(리소스 이름)idlocationgoogleMapsLinks
각 장소에 대해 다음 요구사항을 충족하는 링크 미리보기를 생성해야 합니다.
- 각 소스는 Google 지도에서 제공한 것임을 명시하고 지도 환경 에이전트 도구 텍스트 저작자 표시 가이드라인을 따라야 합니다.
- 응답에 제공된
places.googleMapsLinks.placeUrl를 사용하여 소스에 연결해야 합니다.
이러한 요구사항은 리뷰 통계와 같은 Pro의 확장된 장소 세부정보가 포함된 요약에도 적용됩니다. summary는 places의 항목에 매핑되는 0 기반 색인(예: [0])으로 각 장소를 인용합니다. 각 장소에는 Google 지도의 장소 리뷰로 연결되는 googleMapsLinks.reviewsUrl도 포함됩니다. 사용자는 이를 따라 통계 뒤에 있는 리뷰를 확인할 수 있습니다.
음성 중심 인터페이스
앱이 지도 환경 에이전트 도구 결과를 음성으로 표시하는 경우 음성 우선 인터페이스 요구사항도 충족해야 합니다. 요약하면 다음과 같습니다.
- 소싱: 음성 대화의 축어적 기록을 보여주는 컴패니언 UI에 Google 지도 소스를 표시합니다.
- 적극적인 공개: 상호작용 시 AI 생성 콘텐츠에 Google 지도의 정보가 포함될 수 있음을 사용자에게 알립니다. 또한 컴패니언 UI에서 자세한 소스를 확인할 수 있다고 알려줍니다. 화면에서 또는 음성으로 이 작업을 수행할 수 있습니다.
- 지속적인 공개: AI 생성 콘텐츠에 Google 지도 콘텐츠가 포함될 수 있다는 설명을 음성 설정 메뉴 등에 지속적으로 표시합니다.
- 사용자 문의: 콘텐츠의 출처에 관한 사용자의 질문에 정확하게 답변하고 자세한 내용은 컴패니언 UI를 참고하도록 안내합니다.
MCP 서버를 사용하도록 LLM 구성
지도 환경 에이전트 도구를 사용하려면 지도 환경 에이전트 도구 API 서비스가 사용 설정된 Google Cloud 프로젝트가 필요합니다. API 키 또는 OAuth 클라이언트 ID도 필요합니다. 그런 다음 MCP 서버에 액세스하도록 LLM을 구성할 수 있습니다. MCP 서버는 스트리밍 가능한 HTTP 전송을 사용합니다.
Google Cloud 프로젝트에서 지도 환경 에이전트 도구를 사용 설정합니다.
프로젝트에서 API를 사용 설정하려면 다음 안내를 따르세요.
- Google Cloud 콘솔에서 지도 환경 에이전트 도구에 사용할 프로젝트를 선택합니다.
- Google Cloud 콘솔에서 프로젝트의 결제를 설정합니다.
- Google Cloud 콘솔 API 라이브러리에서 지도 환경 에이전트 도구를 사용 설정합니다.
API 키를 사용하여 인증
지도 환경 에이전트 도구에서 기존 API 키를 사용하거나 새 API 키를 만들 수 있습니다. 어느 쪽이든 Google Cloud 프로젝트와 키 모두에서 지도 환경 에이전트 도구 API 서비스를 사용 설정합니다.
API 키를 사용하여 인증하려면 다음 안내를 따르세요.
- Google Maps Platform 시작하기의 단계에 따라 API 키를 만들거나 구성합니다.
X-Goog-Api-Key헤더를 사용하여 키를 MCP 서버에 전달합니다. 이를 LLM의 MCP 도구 구성에서 커스텀 HTTP 헤더로 지정해야 합니다.
OAuth를 사용하여 인증
OAuth 사용자 인증 정보를 만들고 MCP 호스트 또는 MCP 서버 애플리케이션에 전달하여 OAuth를 사용하여 인증할 수 있습니다.
OAuth를 사용하여 인증하려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 지도 환경 에이전트 도구에 사용할 프로젝트를 선택합니다.
- API 및 서비스 메뉴에서 사용자 인증 정보를 선택합니다.
- 상단 메뉴에서 사용자 인증 정보 만들기 > OAuth 클라이언트 ID를 선택합니다.
- 프로젝트에 구성된 동의 화면이 없으면 동의 화면 구성을 클릭하고 화면에 표시된 안내를 따릅니다.
- 측정항목 섹션에서 OAuth 클라이언트 만들기를 클릭합니다.
- OAuth 클라이언트 ID 만들기 화면에서 애플리케이션 유형을 선택하고 클라이언트 ID의 이름을 입력합니다.
- 애플리케이션 유형과 관련된 추가 세부정보를 지정합니다. 예를 들어 웹 애플리케이션을 만드는 경우 브라우저 및 서버 요청에 대해 승인된 URI를 추가합니다.
- 클라이언트가 생성되면 클라이언트 ID와 보안 비밀을 저장합니다.
- MCP 호스트 또는 MCP 서버 애플리케이션을 구성할 때 OAuth 클라이언트 ID와 보안 비밀번호를 전달합니다. 또한
https://www.googleapis.com/auth/maps-platform.mapstools범위를 요청해야 합니다.
자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스하기를 참조하세요.
지도 환경 에이전트 도구 MCP 서버에 액세스하도록 LLM 구성
지도 환경 에이전트 도구 서비스를 사용 설정하고 사용자 인증 정보를 만든 후 LLM이 MCP 서버에 액세스하도록 구성할 수 있습니다. LLM의 MCP 구성 문서를 따르고 MCP 서버 URL(https://mapstools.googleapis.com/mcp)을 사용합니다.
자세한 내용은 AI 애플리케이션에서 MCP 구성을 참조하세요.
Gemini CLI로 지도 환경 에이전트 도구 구성
이 섹션에서는 Gemini CLI를 사용하여 지도 환경 에이전트 도구 MCP 서버를 구성하는 방법의 예시를 제공합니다. 자세한 내용은 Gemini CLI를 사용하는 MCP 서버를 참조하세요.
Gemini CLI를 설치한 후
gemini mcp add를 실행하여 MCP 서버를 구성합니다.gemini mcp add -s user -t http -H 'X-Goog-Api-Key: API_KEY' maps-experience-agent-tools-mcp https://mapstools.googleapis.com/mcp구성이 성공하면 서버가 사용자 설정에 추가되었다는 확인 메시지가 표시됩니다.
서버가 올바르게 작동하는지 확인하려면
/mcp list명령어를 실행합니다.> /mcp list Configured MCP servers: maps-experience-agent-tools-mcp - Ready (5 tools) Tools: - compute_routes - lookup_weather - resolve_maps_urls - resolve_names - search_placesCLI를 사용하여 지도에 물어보기 관련 질문을 시작합니다. 예를 들어 '마운틴뷰에 있는 레스토랑을 추천해 줘'라고 입력하면 search_places 도구가 자동으로 호출됩니다.
에이전트 개발 키트 (ADK)로 지도 환경 에이전트 도구 구성
이 섹션에서는 Python, Java 또는 TypeScript에서 에이전트 개발 키트 (ADK)를 사용하여 MCP 서버를 구성하는 방법을 보여줍니다.
Python
이 예시의 전체 구현은 GitHub의 adk-samples 저장소에서 확인할 수 있습니다.
1단계: 지도 환경 에이전트 도구에 McpToolset를 사용하여 에이전트 정의
agent.py 파일을 수정합니다. YOUR_GOOGLE_MAPS_API_KEY를 실제 API 키로 바꿉니다.
# ./adk_agent_samples/mcp_agent/agent.py import os from google.adk.agents.llm_agent import Agent from google.adk.tools.mcp_tool import McpToolset from google.adk.tools.mcp_tool.mcp_session_manager import StreamableHTTPConnectionParams # Retrieve the API key from an environment variable or directly insert it. GOOGLE_MAPS_API_KEY = os.getenv("GOOGLE_MAPS_API_KEY") if not GOOGLE_MAPS_API_KEY: GOOGLE_MAPS_API_KEY = "YOUR_GOOGLE_MAPS_API_KEY_HERE" if GOOGLE_MAPS_API_KEY == "YOUR_GOOGLE_MAPS_API_KEY_HERE": print("WARNING: GOOGLE_MAPS_API_KEY is not set.") root_agent = Agent( model='gemini-flash-latest', name='travel_planner_agent', description='A helpful assistant for planning travel routes.', tools=[ McpToolset( connection_params=StreamableHTTPConnectionParams( url="https://mapstools.googleapis.com/mcp", headers={ "X-Goog-Api-Key": GOOGLE_MAPS_API_KEY, "Content-Type": "application/json", "Accept": "application/json, text/event-stream" } ) ) ] )
2단계: __init__.py가 있는지 확인하기
agent.py와 동일한 디렉터리에 __init__.py가 있는지 확인합니다.
from . import agent
3단계: adk web 실행 및 상호작용
- 환경 변수 설정:
터미널에서 Google 지도 API 키를 환경 변수로 설정합니다.export GOOGLE_MAPS_API_KEY="YOUR_ACTUAL_GOOGLE_MAPS_API_KEY"
adk web실행:
다음 명령어를 실행하여 ADK 웹 인터페이스를 시작합니다.adk web
- UI에서 상호작용:
travel_planner_agent을 선택합니다.- 다음과 같은 프롬프트를 사용해 보세요.
- "내일 샌프란시스코에 있을 예정입니다. 날씨가 어때?"
- "골든 게이트 공원 근처 커피숍 찾아 줘."
- "GooglePlex에서 SFO까지 가는 길을 알려 줘."
자바
Java에서 McpToolset를 초기화하는 에이전트를 정의합니다.
환경 변수를 사용하지 않는 경우 YOUR_GOOGLE_MAPS_API_KEY_HERE를 가져온 실제 API 키로 바꿉니다.
package agents; import com.google.adk.agents.LlmAgent; import com.google.adk.runner.InMemoryRunner; import com.google.adk.sessions.SessionKey; import com.google.adk.tools.mcp.McpToolset; import com.google.adk.tools.mcp.StreamableHttpServerParameters; import com.google.genai.types.Content; import com.google.genai.types.Part; import java.util.HashMap; import java.util.Map; public class MapsAgentCreator { public static void main(String[] args) { String googleMapsApiKey = System.getenv("GOOGLE_MAPS_API_KEY"); if (googleMapsApiKey == null || googleMapsApiKey.trim().isEmpty()) { googleMapsApiKey = "YOUR_GOOGLE_MAPS_API_KEY_HERE"; if ("YOUR_GOOGLE_MAPS_API_KEY_HERE".equals(googleMapsApiKey)) { System.out.println("WARNING: GOOGLE_MAPS_API_KEY is not set."); } } Map<String, String> headers = new HashMap<>(); headers.put("X-Goog-Api-Key", googleMapsApiKey); headers.put("Content-Type", "application/json"); headers.put("Accept", "application/json, text/event-stream"); StreamableHttpServerParameters serverParams = StreamableHttpServerParameters.builder("https://mapstools.googleapis.com/mcp") .headers(headers) .build(); try (McpToolset toolset = new McpToolset(serverParams)) { LlmAgent agent = LlmAgent.builder() .model("gemini-flash-latest") .name("travel_planner_agent") .description("A helpful assistant for planning travel routes.") .tools(toolset) .build(); System.out.println("Agent created: " + agent.name()); InMemoryRunner runner = new InMemoryRunner(agent); String userId = "maps-user-" + System.currentTimeMillis(); String sessionId = "maps-session-" + System.currentTimeMillis(); String promptText = "Please give me directions to the nearest pharmacy to Madison Square Garden."; SessionKey sessionKey = runner.sessionService() .createSession(runner.appName(), userId, null, sessionId) .blockingGet() .sessionKey(); System.out.println("Session created: " + sessionId + " for user: " + userId); Content promptContent = Content.fromParts(Part.fromText(promptText)); System.out.println("\nSending prompt: \"" + promptText + "\" to agent...\n"); runner.runAsync(sessionKey, promptContent) .blockingForEach(event -> { System.out.println("Event received: " + event.toJson()); }); } catch (Exception e) { System.err.println("An error occurred: " + e.getMessage()); e.printStackTrace(); } } }
TypeScript
TypeScript에서 MCPToolset를 초기화하는 에이전트를 정의합니다.
import 'dotenv/config'; import {LlmAgent, MCPToolset} from "@google/adk"; const googleMapsApiKey = process.env.GOOGLE_MAPS_API_KEY; if (!googleMapsApiKey) { console.warn("WARNING: GOOGLE_MAPS_API_KEY is not set."); throw new Error( 'GOOGLE_MAPS_API_KEY is not provided, please run "export GOOGLE_MAPS_API_KEY=YOUR_ACTUAL_KEY" to add that.' ); } export const rootAgent = new LlmAgent({ model: "gemini-flash-latest", name: "travel_planner_agent", description: "A helpful assistant for planning travel.", tools: [ new MCPToolset({ type: "SseConnectionParams", url: "https://mapstools.googleapis.com/mcp", headers: { "X-Goog-Api-Key": googleMapsApiKey, "Content-Type": "application/json", "Accept": "application/json, text/event-stream" } }) ], });
의견 공유
지도 환경 상담사 도구에 관한 의견을 공유하려면 다음 양식을 사용하세요.