Skip to content

Commit f97c158

Browse files
cablateclaude
andauthored
fix: align skill tool names with actual MCP names (#52)
* fix: align skill tool names with actual MCP names + add API limitations Tool names in all skill files now match actual MCP registration: - `geocode` → `maps_geocode`, `search-along-route` → `maps_search_along_route`, etc. - This was causing AI agents to fail to discover tools during testing Also added: - Known API Limitations section (weather unsupported in Japan/China/Korea, distance-matrix transit nulls in Japan) - Removed outdated "Future Composite Tools" section (all three are built) - Updated Recipe 7 to prefer maps_search_along_route over manual midpoint search Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: add GOOGLE_MAPS_ENABLED_TOOLS env var to filter registered tools Users can set GOOGLE_MAPS_ENABLED_TOOLS to a comma-separated list of tool names to limit which tools are registered with the MCP client, reducing context window usage for agents that only need a subset. - Not set or "*" = all 17 tools enabled (default) - "maps_geocode,maps_directions" = only those 2 tools registered - If no tools match, falls back to all tools with an error log Usage in MCP client config: "env": { "GOOGLE_MAPS_ENABLED_TOOLS": "maps_geocode,maps_directions" } Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: env var double prefix bug + update README/tests to match codebase Fixes: - GOOGLE_MAPS_GOOGLE_MAPS_ENABLED_TOOLS → GOOGLE_MAPS_ENABLED_TOOLS (replace_all accidentally doubled the prefix) - cli.ts startup log listed nonexistent tools (echo, get_place_details) - smoke.test.ts expectedTools missing 3 composite tools (147 tests now) - SKILL.md version 0.0.37 → 0.0.38 to match package.json - README Roadmap: removed skipped items (validate_address, isochrone), added recently completed tools and planned features Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent ea39f66 commit f97c158

File tree

7 files changed

+217
-163
lines changed

7 files changed

+217
-163
lines changed

README.md

Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,19 @@ Works with Claude Desktop, Cursor, VS Code, and any MCP client that supports std
9393
}
9494
```
9595

96+
**Reduce context usage** — If you only need a subset of tools, set `GOOGLE_MAPS_ENABLED_TOOLS` to limit which tools are registered:
97+
98+
```json
99+
{
100+
"env": {
101+
"GOOGLE_MAPS_API_KEY": "YOUR_API_KEY",
102+
"GOOGLE_MAPS_ENABLED_TOOLS": "maps_geocode,maps_directions,maps_search_places"
103+
}
104+
}
105+
```
106+
107+
Omit or set to `*` for all 17 tools (default).
108+
96109
### Method 2: HTTP Server
97110

98111
For multi-session deployments, per-request API key isolation, or remote access:
@@ -117,7 +130,7 @@ Then configure your MCP client:
117130
### Server Information
118131

119132
- **Transport**: stdio (`--stdio`) or Streamable HTTP (default)
120-
- **Tools**: 16 Google Maps tools (14 atomic + 3 composite)
133+
- **Tools**: 17 Google Maps tools (14 atomic + 3 composite) — filterable via `GOOGLE_MAPS_ENABLED_TOOLS`
121134

122135
### CLI Exec Mode (Agent Skill)
123136

@@ -282,22 +295,26 @@ For enterprise security reviews, see [Security Assessment Clarifications](./SECU
282295

283296
## Roadmap
284297

285-
### New Tools
298+
### Recent Additions
286299

287-
| Tool | What it unlocks | Status |
300+
| Tool / Feature | What it unlocks | Status |
288301
|------|----------------|--------|
289-
| `maps_static_map` | Return map images with pins/routes — multimodal AI can "see" the map | **Done** |
290-
| `maps_air_quality` | AQI, pollutants — health-aware travel, outdoor planning, real estate | **Done** |
291-
| `maps_validate_address` | Standardize and verify addresses — logistics/e-commerce | Planned |
292-
| `maps_isochrone` | "Show me everything within 30 min drive" — reachability analysis | Planned |
293-
| `maps_batch_geocode` | Geocode hundreds of addresses in one call — data enrichment | **Done** (CLI) |
302+
| `maps_static_map` | Map images with pins/routes — multimodal AI can "see" the map | **Done** |
303+
| `maps_air_quality` | AQI, pollutants — health-aware travel, outdoor planning | **Done** |
304+
| `maps_batch_geocode` | Geocode up to 50 addresses in one call — data enrichment | **Done** |
305+
| `maps_search_along_route` | Find places along a route ranked by detour time — trip planning | **Done** |
306+
| `maps_explore_area` | One-call neighborhood overview (composite) | **Done** |
307+
| `maps_plan_route` | Optimized multi-stop itinerary (composite) | **Done** |
308+
| `maps_compare_places` | Side-by-side place comparison (composite) | **Done** |
309+
| `GOOGLE_MAPS_ENABLED_TOOLS` | Filter tools to reduce context usage | **Done** |
294310

295-
### Capabilities
311+
### Planned
296312

297313
| Feature | What it unlocks | Status |
298314
|---------|----------------|--------|
299-
| Spatial Context | Agent remembers "the area we were just looking at" across turns | Research |
300-
| Geo Agent Template | One command to spin up a full geo-aware AI agent | Research |
315+
| `maps_place_photo` | Place photos for multimodal AI — "see" the restaurant ambiance | Planned |
316+
| Language parameter | Multi-language responses (ISO 639-1) across all tools | Planned |
317+
| MCP Prompt Templates | `/travel-planner`, `/neighborhood-scout` slash commands in Claude Desktop | Planned |
301318
| Geo-Reasoning Benchmark | 10-scenario test suite measuring LLM geospatial reasoning accuracy | Research |
302319

303320
### Use Cases We're Building Toward

skills/google-maps/SKILL.md

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name: google-maps
33
description: Geospatial query capabilities — geocoding, nearby search, routing, place details, elevation. Trigger when the user mentions locations, addresses, coordinates, navigation, "what's nearby", "how to get there", distance/duration, or any question that inherently involves geographic information — even if they don't explicitly say "map". Update when new tools are added or tool parameters change.
44
license: MIT
5-
version: 0.0.25
5+
version: 0.0.38
66
compatibility:
77
- claude-code
88
- cursor
@@ -40,39 +40,49 @@ Without this Skill, the agent can only guess or refuse when asked "how do I get
4040
### Place Discovery
4141
| Tool | When to use | Example |
4242
|------|-------------|---------|
43-
| `geocode` | Have an address/landmark, need coordinates | "What are the coordinates of Tokyo Tower?" |
44-
| `reverse-geocode` | Have coordinates, need an address | "What's at 35.65, 139.74?" |
45-
| `search-nearby` | Know a location, find nearby places by type | "Coffee shops near my hotel" |
46-
| `search-places` | Natural language place search | "Best ramen in Tokyo" |
47-
| `place-details` | Have a place_id, need full info | "Opening hours and reviews for this restaurant?" |
48-
| `batch-geocode` | Geocode multiple addresses at once (max 50) | "Get coordinates for all these offices" |
43+
| `maps_geocode` | Have an address/landmark, need coordinates | "What are the coordinates of Tokyo Tower?" |
44+
| `maps_reverse_geocode` | Have coordinates, need an address | "What's at 35.65, 139.74?" |
45+
| `maps_search_nearby` | Know a location, find nearby places by type | "Coffee shops near my hotel" |
46+
| `maps_search_places` | Natural language place search | "Best ramen in Tokyo" |
47+
| `maps_place_details` | Have a place_id, need full info | "Opening hours and reviews for this restaurant?" |
48+
| `maps_batch_geocode` | Geocode multiple addresses at once (max 50) | "Get coordinates for all these offices" |
4949

5050
### Routing & Distance
5151
| Tool | When to use | Example |
5252
|------|-------------|---------|
53-
| `directions` | How to get from A to B | "Route from Taipei Main Station to the airport" |
54-
| `distance-matrix` | Compare distances across multiple points | "Which of these 3 hotels is closest to the airport?" |
55-
| `search-along-route` | Find places along a route (meals, stops) ranked by detour time | "Restaurants between Fushimi Inari and Kiyomizu-dera" |
53+
| `maps_directions` | How to get from A to B | "Route from Taipei Main Station to the airport" |
54+
| `maps_distance_matrix` | Compare distances across multiple points | "Which of these 3 hotels is closest to the airport?" |
55+
| `maps_search_along_route` | Find places along a route (meals, stops) ranked by detour time | "Restaurants between Fushimi Inari and Kiyomizu-dera" |
5656

5757
### Environment
5858
| Tool | When to use | Example |
5959
|------|-------------|---------|
60-
| `elevation` | Query altitude | "Elevation profile along this hiking trail" |
61-
| `timezone` | Need local time at a destination | "What time is it in Tokyo?" |
62-
| `weather` | Weather at a location (current or forecast) | "What's the weather in Paris?" |
63-
| `air-quality` | AQI, pollutants, health recommendations | "Is the air safe for jogging?" |
60+
| `maps_elevation` | Query altitude | "Elevation profile along this hiking trail" |
61+
| `maps_timezone` | Need local time at a destination | "What time is it in Tokyo?" |
62+
| `maps_weather` | Weather at a location (current or forecast) | "What's the weather in Paris?" |
63+
| `maps_air_quality` | AQI, pollutants, health recommendations | "Is the air safe for jogging?" |
6464

6565
### Visualization
6666
| Tool | When to use | Example |
6767
|------|-------------|---------|
68-
| `static-map` | Show locations/routes on a map image | "Show me these places on a map" |
68+
| `maps_static_map` | Show locations/routes on a map image | "Show me these places on a map" |
6969

7070
### Composite (one-call shortcuts)
7171
| Tool | When to use | Example |
7272
|------|-------------|---------|
73-
| `explore-area` | Overview of a neighborhood | "What's around Tokyo Tower?" |
74-
| `plan-route` | Multi-stop optimized itinerary | "Visit these 5 places efficiently" |
75-
| `compare-places` | Side-by-side comparison | "Which ramen shop near Shibuya?" |
73+
| `maps_explore_area` | Overview of a neighborhood | "What's around Tokyo Tower?" |
74+
| `maps_plan_route` | Multi-stop optimized itinerary | "Visit these 5 places efficiently" |
75+
| `maps_compare_places` | Side-by-side comparison | "Which ramen shop near Shibuya?" |
76+
77+
---
78+
79+
## Known API Limitations
80+
81+
| Tool | Limitation | Workaround |
82+
|------|-----------|------------|
83+
| `maps_weather` | Unsupported regions: Japan, China, South Korea, Cuba, Iran, North Korea, Syria | Use web search for weather in these regions |
84+
| `maps_distance_matrix` | Transit mode returns null in some regions (notably Japan) | Fall back to `driving` or `walking` mode, or use `maps_directions` for transit |
85+
| `maps_air_quality` | Works globally including Japan (unlike weather) ||
7686

7787
---
7888

@@ -85,6 +95,8 @@ npx @cablate/mcp-google-map exec <tool> '<json_params>' [-k API_KEY]
8595
- **API Key**: `-k` flag or `GOOGLE_MAPS_API_KEY` environment variable
8696
- **Output**: JSON to stdout, errors to stderr
8797
- **Stateless**: each call is independent
98+
- **Tool names**: CLI accepts both `maps_geocode` and `geocode` short forms
99+
- **Tool filtering**: Set `GOOGLE_MAPS_ENABLED_TOOLS` env var to a comma-separated list of tool names to limit registered tools (reduces MCP client context usage). Omit or set to `*` for all tools.
88100

89101
---
90102

0 commit comments

Comments
 (0)