skill-gemini-google-maps-tool
Query Gemini with Google Maps grounding
Install
mkdir -p .claude/skills/skill-gemini-google-maps-tool && curl -L -o skill.zip "https://mcp.directory/api/skills/download/311" && unzip -o skill.zip -d .claude/skills/skill-gemini-google-maps-tool && rm skill.zipInstalls to .claude/skills/skill-gemini-google-maps-tool
About this skill
When to use
- When you need location-aware AI responses about places
- When you need recommendations for restaurants, hotels, attractions
- When you need accurate, up-to-date information from Google Maps
Gemini Google Maps Tool Skill
Purpose
Comprehensive guide for using gemini-google-maps-tool, a CLI and Python library that connects Gemini to Google Maps' database of 250+ million places worldwide for location-aware responses with accurate, up-to-date information.
When to Use This Skill
Use this skill when:
- Querying for location-based recommendations (restaurants, hotels, attractions)
- Generating itineraries with place-specific information
- Building applications that need location-aware AI responses
- Integrating Google Maps data into AI workflows
- Creating travel, food, or local business applications
Do NOT use this skill for:
- General Gemini queries without location context
- Tasks that don't involve places or geographical information
- Direct Google Maps API queries (this uses Gemini with Maps grounding)
CLI Tool: gemini-google-maps-tool
A production-ready CLI and Python library for querying Gemini with Google Maps grounding.
Installation
# Install globally with uv tool
uv tool install gemini-google-maps-tool
# Or from source
git clone https://github.com/dnvriend/gemini-google-maps-tool.git
cd gemini-google-maps-tool
uv tool install .
Prerequisites
- Python 3.14+
- uv package manager
- Gemini API Key from Google AI Studio
Quick Start
# Set API key
export GEMINI_API_KEY="your-api-key"
# Basic query
gemini-google-maps-tool query "Best coffee shops in Amsterdam"
# With location context
gemini-google-maps-tool query "Italian restaurants nearby" \
--lat-lon "52.37,4.89"
# Markdown output with sources
gemini-google-maps-tool query "Museums in Paris" --text
Progressive Disclosure
<details> <summary><strong>📖 Core Commands (Click to expand)</strong></summary>query - Query Gemini with Google Maps Grounding
Query Gemini with Google Maps integration for location-aware information about places, businesses, directions, and attractions.
Usage:
gemini-google-maps-tool query "QUERY" [OPTIONS]
Arguments:
QUERY: The search query (required unless using --stdin)--lat-lon LAT,LON: Location coordinates in format "lat,lon" (e.g., "37.78193,-122.40476")--model {flash|flash-lite}: Model selectionflash: gemini-2.5-flash (more powerful, higher cost)flash-lite: gemini-2.5-flash-lite (default, faster, cost-effective)
-v, --verbose: Enable INFO logging (operation-level details)-vv: Enable DEBUG logging (detailed API calls, validation)-vvv: Enable TRACE logging (full HTTP traces, library internals)--text/-t: Output markdown text instead of JSON--stdin/-s: Read query from stdin
Examples:
# Basic query
gemini-google-maps-tool query "Best coffee shops in Amsterdam"
# With location context
gemini-google-maps-tool query "Italian restaurants nearby" \
--lat-lon "52.37,4.89"
# Using different model
gemini-google-maps-tool query "Plan a day in NYC" --model flash
# Markdown output with sources
gemini-google-maps-tool query "Best museums in Paris" --text
# Verbose mode with grounding metadata
gemini-google-maps-tool query "Sushi restaurants" -v
# Debug mode with full details
gemini-google-maps-tool query "Hotels in London" -vv
# Trace mode with HTTP details
gemini-google-maps-tool query "Attractions in Rome" -vvv
# Reading from stdin (for pipelines)
echo "Best bakeries in San Francisco" | \
gemini-google-maps-tool query --stdin
# Pipeline with jq
gemini-google-maps-tool query "Coffee shops" | \
jq '.response_text'
Output Formats:
JSON (default):
{
"response_text": "Here are some great coffee shops...",
"grounding_metadata": {
"grounding_chunks": [
{
"title": "Blue Bottle Coffee",
"uri": "https://maps.google.com/?cid=...",
"place_id": "places/ChIJ..."
}
]
}
}
Markdown (with --text):
Here are some great coffee shops...
---
## Sources
1. [Blue Bottle Coffee](https://maps.google.com/?cid=...)
2. [Philz Coffee](https://maps.google.com/?cid=...)
completion - Generate Shell Completion Scripts
Generate shell completion scripts for Bash, Zsh, or Fish to enable tab-completion for commands and options.
Usage:
gemini-google-maps-tool completion {bash|zsh|fish}
Arguments:
SHELL: Shell type (required) - bash, zsh, or fish
Examples:
# Bash - temporary (current session)
eval "$(gemini-google-maps-tool completion bash)"
# Bash - persistent
echo 'eval "$(gemini-google-maps-tool completion bash)"' >> ~/.bashrc
# Zsh - temporary
eval "$(gemini-google-maps-tool completion zsh)"
# Zsh - persistent
echo 'eval "$(gemini-google-maps-tool completion zsh)"' >> ~/.zshrc
# Fish - install to completions directory
gemini-google-maps-tool completion fish > \
~/.config/fish/completions/gemini-google-maps-tool.fish
# File-based (better performance)
gemini-google-maps-tool completion bash > \
~/.gemini-google-maps-tool-complete.bash
echo 'source ~/.gemini-google-maps-tool-complete.bash' >> ~/.bashrc
Output: Shell-specific completion script that can be evaluated or saved to a file.
</details> <details> <summary><strong>⚙️ Advanced Features (Click to expand)</strong></summary>Multi-Level Verbosity Logging
Progressive detail control for debugging and monitoring:
- No flag (default): WARNING level - only critical issues
-v: INFO level - high-level operations, important events-vv: DEBUG level - detailed operations, API calls, validation steps-vvv: TRACE level - full request/response, library internals, HTTP traces
Examples:
# INFO: See which files are processed
gemini-google-maps-tool query "Best restaurants" -v
# DEBUG: See API call details and validation
gemini-google-maps-tool query "Hotels nearby" -vv
# TRACE: See full HTTP requests/responses
gemini-google-maps-tool query "Museums" -vvv
Google Maps Grounding
What is it? Google Maps grounding connects Gemini to Google Maps' database of 250+ million places worldwide, providing:
- Location-aware responses with accurate, up-to-date information
- Personalized recommendations tailored to specific areas
- Automatic citation generation with structured sources
- Seamless integration via Gemini's API
Grounding Metadata:
With -v or --text, responses include:
- Grounding Chunks: Google Maps sources (title, URI, place_id)
- Grounding Supports: Text segments linked to sources
- Widget Context Token: For interactive maps integration
Example:
gemini-google-maps-tool query "Best pizza in Brooklyn" -v
Returns JSON with:
{
"response_text": "...",
"grounding_metadata": {
"grounding_chunks": [
{
"title": "Roberta's Pizza",
"uri": "https://maps.google.com/?cid=...",
"place_id": "places/ChIJ..."
}
],
"grounding_supports": [...],
"google_maps_widget_context_token": "..."
}
}
Location Context
Provide location coordinates for personalized, location-aware responses:
Format: --lat-lon "latitude,longitude"
Examples:
# Amsterdam center
gemini-google-maps-tool query "Coffee shops nearby" \
--lat-lon "52.37,4.89"
# San Francisco
gemini-google-maps-tool query "Italian restaurants" \
--lat-lon "37.78,-122.40"
# Tokyo
gemini-google-maps-tool query "Sushi restaurants" \
--lat-lon "35.68,139.76"
Coordinate Ranges:
- Latitude: -90 to 90
- Longitude: -180 to 180
Model Selection
Choose between two Gemini models:
flash-lite (default):
- Model: gemini-2.5-flash-lite
- Faster, more cost-effective
- Best for simple location queries
- Recommended for most use cases
flash:
- Model: gemini-2.5-flash
- More powerful and capable
- Best for complex queries and itinerary planning
- Higher cost
Examples:
# Default (flash-lite)
gemini-google-maps-tool query "Best restaurants"
# Explicit flash-lite
gemini-google-maps-tool query "Hotels" --model flash-lite
# Use flash for complex queries
gemini-google-maps-tool query "Plan a 3-day trip to Paris" \
--model flash
Python Library Usage
Import and use programmatically in Python applications:
Basic Usage:
from gemini_google_maps_tool import get_client, query_maps
# Initialize client
client = get_client()
# Execute query
result = query_maps(
client=client,
query="Best coffee shops near me",
)
print(result.response_text)
With Location and Grounding:
from gemini_google_maps_tool import get_client, query_maps
client = get_client()
result = query_maps(
client=client,
query="Italian restaurants nearby",
lat_lon=(37.78193, -122.40476),
model="gemini-2.5-flash",
include_grounding=True,
)
# Access response
print(result.response_text)
# Access grounding metadata
if result.grounding_metadata:
for chunk in result.grounding_metadata.grounding_chunks:
print(f"Source: {chunk.title} - {chunk.uri}")
Error Handling:
from gemini_google_maps_tool import (
get_client,
query_maps,
ClientError,
QueryError,
)
try:
client = get_client()
result = query_maps(client, "Best restaurants")
print(result.response_text)
except ClientError as e:
print(f"Client error: {e}")
except QueryError as e:
print(f"Query error: {e}")
</details>
<details>
<summary><strong>🔧 Troubleshooting (Click to expand)</strong></summary>
Common Issues
Issue: GEMINI_API_KEY not set
Error: GEMINI_API_KEY environment variable is required.
Solution:
# Set for current session
export GEMINI_API_KEY="your-api-key"
# O
---
*Content truncated.*
You might also like
flutter-development
aj-geddes
Build beautiful cross-platform mobile apps with Flutter and Dart. Covers widgets, state management with Provider/BLoC, navigation, API integration, and material design.
ui-ux-pro-max
nextlevelbuilder
"UI/UX design intelligence. 50 styles, 21 palettes, 50 font pairings, 20 charts, 8 stacks (React, Next.js, Vue, Svelte, SwiftUI, React Native, Flutter, Tailwind). Actions: plan, build, create, design, implement, review, fix, improve, optimize, enhance, refactor, check UI/UX code. Projects: website, landing page, dashboard, admin panel, e-commerce, SaaS, portfolio, blog, mobile app, .html, .tsx, .vue, .svelte. Elements: button, modal, navbar, sidebar, card, table, form, chart. Styles: glassmorphism, claymorphism, minimalism, brutalism, neumorphism, bento grid, dark mode, responsive, skeuomorphism, flat design. Topics: color palette, accessibility, animation, layout, typography, font pairing, spacing, hover, shadow, gradient."
drawio-diagrams-enhanced
jgtolentino
Create professional draw.io (diagrams.net) diagrams in XML format (.drawio files) with integrated PMP/PMBOK methodologies, extensive visual asset libraries, and industry-standard professional templates. Use this skill when users ask to create flowcharts, swimlane diagrams, cross-functional flowcharts, org charts, network diagrams, UML diagrams, BPMN, project management diagrams (WBS, Gantt, PERT, RACI), risk matrices, stakeholder maps, or any other visual diagram in draw.io format. This skill includes access to custom shape libraries for icons, clipart, and professional symbols.
godot
bfollington
This skill should be used when working on Godot Engine projects. It provides specialized knowledge of Godot's file formats (.gd, .tscn, .tres), architecture patterns (component-based, signal-driven, resource-based), common pitfalls, validation tools, code templates, and CLI workflows. The `godot` command is available for running the game, validating scripts, importing resources, and exporting builds. Use this skill for tasks involving Godot game development, debugging scene/resource files, implementing game systems, or creating new Godot components.
nano-banana-pro
garg-aayush
Generate and edit images using Google's Nano Banana Pro (Gemini 3 Pro Image) API. Use when the user asks to generate, create, edit, modify, change, alter, or update images. Also use when user references an existing image file and asks to modify it in any way (e.g., "modify this image", "change the background", "replace X with Y"). Supports both text-to-image generation and image-to-image editing with configurable resolution (1K default, 2K, or 4K for high resolution). DO NOT read the image file first - use this skill directly with the --input-image parameter.
pdf-to-markdown
aliceisjustplaying
Convert entire PDF documents to clean, structured Markdown for full context loading. Use this skill when the user wants to extract ALL text from a PDF into context (not grep/search), when discussing or analyzing PDF content in full, when the user mentions "load the whole PDF", "bring the PDF into context", "read the entire PDF", or when partial extraction/grepping would miss important context. This is the preferred method for PDF text extraction over page-by-page or grep approaches.
Related MCP Servers
Browse all serversGoogle GenAI Toolbox: open-source GenAI database agent and AI database connector for Google Cloud database—query Cloud S
Find official MCP servers for Google Maps. Explore resources to build, integrate, and extend apps with Google directions
Explore official Google BigQuery MCP servers. Find resources and examples to build context-aware apps in Google's ecosys
Integrate with Gemini CLI for large-scale file analysis, secure code execution, and advanced context control using Googl
Ultra (Multi-AI Provider) unifies OpenAI, Gemini, and Azure models, tracking usage, estimating costs, and offering 9 dev
Integrate with Google Drive and GCloud Storage via Google Cloud Platform for seamless access to Compute Engine, BigQuery
Stay ahead of the MCP ecosystem
Get weekly updates on new skills and servers.