Google Maps Platform Grounding Lite는 모델 컨텍스트 프로토콜(MCP)을 지원하는 서비스로, Google 지도의 신뢰할 수 있는 지리공간 데이터를 사용하여 AI 애플리케이션을 쉽게 그라운딩할 수 있습니다. MCP 서버는 LLM이 장소, 날씨, 경로 기능을 이용할 수 있도록 지원하는 도구를 제공합니다. MCP 서버를 지원하는 도구에서 Maps Grounding Lite를 사용 설정하여 사용해 볼 수 있습니다.
도구
Maps Grounding Lite는 LLM이 다음 Google 지도 기능에 액세스할 수 있도록 지원하는 도구를 제공합니다.
- 장소 검색: 장소에 관한 정보를 요청하고 AI 생성 장소 데이터 요약과 요약에 포함된 각 장소의 장소 ID, 위도 및 경도 좌표, Google 지도 링크를 가져옵니다. 반환된 장소 ID와 위도 및 경도 좌표를 다른 Google Maps Platform API와 함께 사용하여 지도에 장소를 표시할 수 있습니다.
- 날씨 조회: 날씨에 관한 정보를 요청하고 현재 상태, 시간별 예보, 일별 예보를 반환합니다.
경로 계산: 두 위치 간의 운전 또는 도보 경로에 관한 정보를 요청하고 경로 거리 및 소요 시간 정보를 반환합니다.
Maps Grounding Lite MCP 서버를 사용 설정하면 LLM이 서버에서 노출된 새 도구를 호출하여 위에 나열된 데이터 유형에 대한 추가 그라운딩 정보를 반환할 수 있습니다. LLM은 이 추가 정보를 컨텍스트로 사용할 수 있지만 LLM이 궁극적으로 생성하는 대답에는 MCP 서버에서 반환된 정확한 정보가 포함되지 않을 수 있습니다. 생성된 대답의 정확성을 확인해야 합니다.
Grounding Lite 샘플 앱 사용해 보기(새 탭에서 열기)
결제 및 할당량
비용 청구 방식
Google Maps Platform 사용한 만큼만 지불 요금 모델을 사용하면 각 요청에 대해 Grounding Lite 사용량이 계산되며, 각 요청은 하나의 청구 이벤트를 나타냅니다. 사용량은 각 제품 SKU에 따라 추적됩니다. 청구서에는 총 청구액 외에 SKU별 항목이 표시됩니다. 자세한 내용은 보고 개요를 참고하세요.
가격에 관한 자세한 내용은 기본 가격표와 인도 가격표를 참고하세요.
Maps Grounding Lite는 Essentials 및 Pro 할인 구독 패키지를 통해서도 제공됩니다.
할당량
Maps Grounding Lite에서 제공하는 도구에는 다음 할당량이 적용됩니다.
- 장소 검색: 프로젝트별 분당 300개의 쿼리
- 날씨 조회: 프로젝트별 분당 300개의 쿼리
- 경로 계산: 프로젝트별 분당 300개의 쿼리
정책 및 서비스 약관
Maps Grounding Lite에는 이 서비스의 서비스별 약관을 포함한 Google Maps Platform 서비스 약관이 적용됩니다. 이 섹션에서는 호환되는 대규모 언어 모델 및 소스 저작자 표시 요구사항을 비롯한 지도 Grounding Lite의 추가 서비스 사용 요구사항을 설명합니다.
호환되는 LLM 요구사항
Google Maps Platform 서비스 약관을 준수하는 LLM에서만 Maps Grounding Lite를 사용할 수 있습니다.
예를 들어 사용하기로 선택한 LLM이 Google 지도 콘텐츠를 캐시하거나 저장하거나 LLM을 개선하는 데 사용하지 않도록 할 책임은 사용자에게 있습니다. Maps Grounding Lite를 사용하기 전에 Maps Grounding Lite와 함께 사용할 모델의 서비스 약관을 검토해야 합니다. 모델 학습 또는 개선을 위해 모델에 입력된 데이터를 사용하는 모델과 함께 Grounding Lite를 사용해서는 안 됩니다. 모델 사용이 서비스별 약관을 포함한 Google Maps Platform 서비스 약관의 Google 지도 콘텐츠에 대한 제한사항을 완전히 준수하는지 확인하는 것은 사용자의 책임입니다.
Google 지도 소스의 저작자 표시 요구사항
Maps Grounding Lite의 각 도구 응답에는 소스가 포함됩니다. 지도 Grounding Lite에서 제공하는 도구를 사용하는 결과를 표시할 때는 다음 요구사항을 충족하는 방식으로 연결된 Google 지도 소스를 포함해야 합니다.
- Google 지도 소스는 해당 소스를 뒷받침하는 생성된 콘텐츠 직후에 따라와야 합니다. 이 생성된 콘텐츠를 그라운딩된 출력이라고도 합니다.
- Google 지도 소스는 단일 사용자 상호작용 내에서 확인 가능해야 합니다.
장소 검색 도구의 소스
search_places 도구의 places 필드는 summary를 지원하는 소스를 제공합니다. places의 경우 다음 메타데이터가 반환됩니다.
place(리소스 이름)idlocationgoogleMapsLinks
각 장소에 대해 다음 요구사항을 충족하는 링크 미리보기를 생성해야 합니다.
- 각 소스는 Google 지도에서 제공한 것임을 명시하고 Grounding Lite 텍스트 저작자 표시 가이드라인을 따라야 합니다.
- 응답에 제공된
places.googleMapsLinks.placeUrl를 사용하여 소스에 연결해야 합니다.
MCP 서버를 사용하도록 LLM 구성
Maps Grounding Lite를 사용하려면 먼저 Maps Grounding Lite API 서비스가 사용 설정된 Google Cloud 프로젝트와 API 키 또는 OAuth 클라이언트 ID가 필요합니다. 그런 다음 MCP 서버에 액세스하도록 LLM을 구성할 수 있습니다. Grounding Lite MCP 서버는 스트리밍 가능한 HTTP 전송을 사용합니다.
Google Cloud 프로젝트에서 Maps Grounding Lite 서비스를 사용 설정합니다.
프로젝트에서 API를 사용 설정하려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 Maps Grounding Lite에 사용할 프로젝트를 선택합니다.
- Google Cloud 콘솔에서 프로젝트의 결제를 사용 설정합니다.
- Google Cloud 콘솔 API 라이브러리에서 Maps Grounding Lite를 사용 설정합니다.
API 키를 사용하여 인증
Google Cloud 프로젝트와 키 모두에서 Maps Grounding Lite API 서비스를 사용 설정하는 한 기존 API 키를 Maps Grounding Lite와 함께 사용하거나 새 API 키를 만들 수 있습니다.
API 키를 사용하여 인증하려면 다음 단계를 따르세요.
- Google Maps Platform 시작하기의 단계에 따라 API 키를 만들거나 구성합니다.
X-Goog-Api-Key헤더를 사용하여 키를 MCP 서버에 전달합니다. LLM의 MCP 도구 구성에서 이를 맞춤 HTTP 헤더로 지정해야 합니다.
OAuth를 사용하여 인증
OAuth 사용자 인증 정보를 만들어 MCP 호스트 또는 MCP 서버 애플리케이션에 전달하여 OAuth를 사용하여 인증할 수 있습니다.
OAuth를 사용하여 인증하려면 다음 단계를 따르세요.
- Google Cloud 콘솔에서 Maps Grounding Lite에 사용할 프로젝트를 선택합니다.
- API 및 서비스 메뉴에서 사용자 인증 정보를 선택합니다.
- 상단 메뉴에서 사용자 인증 정보 만들기 > OAuth 클라이언트 ID를 선택합니다.
- 프로젝트에 구성된 동의 화면이 없으면 동의 화면 구성을 클릭하고 화면에 표시된 안내를 따릅니다.
- 측정항목 섹션에서 OAuth 클라이언트 만들기를 클릭합니다.
- OAuth 클라이언트 ID 만들기 화면에서 애플리케이션 유형을 선택하고 클라이언트 ID의 이름을 입력합니다.
- 애플리케이션 유형과 관련된 추가 세부정보를 지정합니다. 예를 들어 웹 애플리케이션을 만드는 경우 브라우저 및 서버 요청에 대해 승인된 URI를 추가합니다.
- 클라이언트가 생성되면 클라이언트 ID와 보안 비밀을 저장합니다.
- Maps Grounding Lite에 액세스하도록 MCP 호스트 또는 MCP 서버 애플리케이션을 구성할 때 OAuth 클라이언트 ID와 보안 비밀번호를 전달합니다. 다음 범위도 요청해야 합니다.
https://www.googleapis.com/auth/maps-platform.mapstools
자세한 내용은 OAuth 2.0을 사용하여 Google API에 액세스하기를 참고하세요.
Maps Grounding Lite MCP 서버에 액세스하도록 LLM 구성
Maps Grounding Lite API 서비스가 사용 설정되어 있고 API 키 또는 OAuth 클라이언트 ID 및 비밀과 같은 유효한 사용자 인증 정보가 있는 Google Cloud 프로젝트가 있으면 해당 MCP 구성 문서를 따르고 Maps Grounding Lite MCP 서버 URL(https://mapstools.googleapis.com/mcp)을 사용하여 MCP 서버에 액세스하도록 LLM을 구성할 수 있습니다.
자세한 내용은 AI 애플리케이션에서 MCP 구성을 참고하세요.
Gemini CLI로 Grounding Lite 구성하기
이 섹션에서는 Gemini CLI를 사용하여 지도 그라운딩 Lite MCP 서버를 구성하는 방법을 보여줍니다. 자세한 내용은 Gemini CLI를 사용하는 MCP 서버를 참고하세요.
Gemini CLI를 설치한 후 add 명령어를 사용하여 Maps Grounding Lite MCP 서버를 구성할 수 있습니다.
gemini mcp add -s user -t http -H 'X-Goog-Api-Key: API_KEY' maps-grounding-lite-mcp https://mapstools.googleapis.com/mcp구성이 완료되면 서버가 사용자 설정에 추가되었다는 확인 메시지가 표시됩니다.
서버가 올바르게 작동하는지 확인하려면
/mcp list명령어를 실행합니다.> /mcp list Configured MCP servers: maps-grounding-lite-mcp - Ready (3 tools) Tools: - compute_routes - lookup_weather - search_placesCLI를 사용하여 지도 관련 질문을 시작합니다. 예를 들어 '마운틴뷰의 음식점을 추천해 줘'라고 말하면 사용자를 대신하여 search_places 도구를 호출합니다.
에이전트 개발 키트 (ADK)로 Grounding Lite 구성
이 섹션에서는 에이전트 개발 키트 (ADK)와 Python, Java 또는 TypeScript를 사용하여 Grounding Lite MCP 서버를 구성하는 방법을 보여주는 예를 제공합니다.
Python
1단계: Google 지도 Grounding Lite용 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을 선택합니다.- 다음과 같은 프롬프트를 사용해 보세요.
- '내일 샌프란시스코에 갈 거야. 날씨 어때?'
- 골든게이트 공원 근처 커피숍 찾아 줘.
- 'Get directions from GooglePlex to 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" } }) ], });
의견 공유
Maps Grounding Lite에 대한 의견을 공유하려면 다음 양식을 사용하세요.