maps

Diagnose and implement Google Maps Platform, Places API, and map features for the MDE AI codebase.

1|Updated Sep 15, 2026
One-click install
npx skills add https://github.com/amoai-tech/mdeai --skill maps-amoai-tech
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: maps
Source: https://github.com/amoai-tech/mdeai/tree/main/.claude/skills/maps
Command: npx skills add https://github.com/amoai-tech/mdeai --skill maps-amoai-tech

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Working on Google Maps, Places, routes, or location search in the MDE AI repository requires juggling API keys, field masks, billing rules, React map components, and Gemini grounding. This Skill consolidates the routing rules, security architecture, and implementation references so changes to map-related code follow the correct patterns. ## Core Features & Use Cases - Places API (New) enrichment: Field-mask-driven enrichment of venues with place_id, googleMapsLinks, coordinates, and generativeSummary, including ToS attribution rules. - Interactive MCP tools: search_places, get_directions, geocode, and show_on_map with a strict Text → Map → Text response pattern for Claude sessions. - Batch CLI client: scripts/gmaps.py wraps 20+ Google Maps Platform REST APIs (geocoding, routes, places, weather, elevation, static maps) for batch operations. - Security and key architecture: Two-key GCP setup separating browser-restricted frontend keys from server-side keys, plus zero-key embed iframe patterns. - Use Case: When adding a new map pin category to ChatMap.tsx or backfilling maps_url for venues in Supabase, load this Skill to get the correct field mask, Medellín location bias, and key restrictions before writing code. ## Quick Start Ask the agent to enrich a list of Medellín venues with Google Places data using the maps skill's field mask and server-side key rules.

Frequently Asked Questions about maps

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enrich venues with Google Places API (New) data?

Use the Places API (New) searchText endpoint with an X-Goog-FieldMask header requesting places.id, places.displayName, places.googleMapsLinks, places.location, and places.generativeSummary. Call it server-side with GOOGLE_PLACES_API_KEY and a Medellín location bias, then cache results in the database.

How do I set up Google Maps API keys for a Next.js app?

Use two keys: a frontend key restricted by HTTP referrer with only Maps JavaScript API enabled, exposed as NEXT_PUBLIC_GOOGLE_MAPS_API_KEY, and a backend key restricted by server IP for Places, Routes, and Geocoding. Never expose the server key through a NEXT_PUBLIC_ variable.

Why is AdvancedMarkerElement not found in my Google Maps React app?

AdvancedMarkerElement requires the 'marker' library in the js-api-loader libraries array and a mapId set on the Map component. Without a mapId, advanced markers fail to render.

Does generativeSummary work for places in Medellín?

No. generativeSummary is currently English-only and limited to the US and India, so it returns null for Medellín venues. Handle null gracefully at enrichment time and never call it per chat turn.

How do I reduce Google Places autocomplete billing costs?

Use UUID v4 session tokens to group autocomplete keystrokes and the final Place Details call into one billing event. Generate a fresh token per search session and request only the fields you display via field masks.

When should I not use this maps skill?

Skip it for generic GIS or spatial math with no Google Maps Platform APIs, Mapbox-only or Leaflet/OpenStreetMap-only stacks, and work unrelated to the mdeai repository. It is scoped to Google Maps Platform within the MDE AI codebase.