@cablate/mcp-google-map 0.0.33 → 0.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  Give your AI agent the ability to understand the physical world — geocode, route, search, and reason about locations.
8
8
 
9
- - **10 tools** — geocode, reverse-geocode, search-nearby, search-places, place-details, directions, distance-matrix, elevation, timezone, weather
9
+ - **13 tools** — 10 atomic + 3 composite (explore-area, plan-route, compare-places)
10
10
  - **3 modes** — stdio, StreamableHTTP, standalone exec CLI
11
11
  - **Agent Skill** — built-in skill definition teaches AI how to chain geo tools ([`skills/google-maps/`](./skills/google-maps/))
12
12
 
@@ -14,7 +14,7 @@ Give your AI agent the ability to understand the physical world — geocode, rou
14
14
 
15
15
  | | This project | [Grounding Lite](https://cloud.google.com/blog/products/ai-machine-learning/announcing-official-mcp-support-for-google-services) |
16
16
  |---|---|---|
17
- | Tools | **10** | 3 |
17
+ | Tools | **13** | 3 |
18
18
  | Geocoding | Yes | No |
19
19
  | Step-by-step directions | Yes | No |
20
20
  | Elevation | Yes | No |
@@ -22,6 +22,7 @@ Give your AI agent the ability to understand the physical world — geocode, rou
22
22
  | Place details | Yes | No |
23
23
  | Timezone | Yes | No |
24
24
  | Weather | Yes | Yes |
25
+ | Composite tools (explore, plan, compare) | Yes | No |
25
26
  | Open source | MIT | No |
26
27
  | Self-hosted | Yes | Google-managed only |
27
28
  | Agent Skill | Yes | No |
@@ -56,7 +57,11 @@ Special thanks to [@junyinnnn](https://github.com/junyinnnn) for helping add sup
56
57
  | `maps_directions` | Get step-by-step navigation between two points with route details. |
57
58
  | `maps_elevation` | Get elevation (meters above sea level) for geographic coordinates. |
58
59
  | `maps_timezone` | Get timezone ID, name, UTC/DST offsets, and local time for coordinates. |
59
- | `maps_weather` | Get current weather conditions — temperature, humidity, wind, UV, precipitation. |
60
+ | `maps_weather` | Get current weather conditions or forecast — temperature, humidity, wind, UV, precipitation. |
61
+ | **Composite Tools** | |
62
+ | `maps_explore_area` | Explore what's around a location — searches multiple place types and gets details in one call. |
63
+ | `maps_plan_route` | Plan an optimized multi-stop route — geocodes, finds best order, returns directions. |
64
+ | `maps_compare_places` | Compare places side-by-side — searches, gets details, and optionally calculates distances. |
60
65
 
61
66
  All tools are annotated with `readOnlyHint: true` and `destructiveHint: false` — MCP clients can auto-approve these without user confirmation.
62
67
 
@@ -106,7 +111,7 @@ Then configure your MCP client:
106
111
  ### Server Information
107
112
 
108
113
  - **Transport**: stdio (`--stdio`) or Streamable HTTP (default)
109
- - **Tools**: 10 Google Maps tools
114
+ - **Tools**: 13 Google Maps tools (10 atomic + 3 composite)
110
115
 
111
116
  ### CLI Exec Mode (Agent Skill)
112
117
 
@@ -117,7 +122,7 @@ npx @cablate/mcp-google-map exec geocode '{"address":"Tokyo Tower"}'
117
122
  npx @cablate/mcp-google-map exec search-places '{"query":"ramen in Tokyo"}'
118
123
  ```
119
124
 
120
- All 10 tools available: `geocode`, `reverse-geocode`, `search-nearby`, `search-places`, `place-details`, `directions`, `distance-matrix`, `elevation`, `timezone`, `weather`. See [`skills/google-maps/`](./skills/google-maps/) for the agent skill definition and full parameter docs.
125
+ All 13 tools available: `geocode`, `reverse-geocode`, `search-nearby`, `search-places`, `place-details`, `directions`, `distance-matrix`, `elevation`, `timezone`, `weather`, `explore-area`, `plan-route`, `compare-places`. See [`skills/google-maps/`](./skills/google-maps/) for the agent skill definition and full parameter docs.
121
126
 
122
127
  ### API Key Configuration
123
128
 
@@ -209,7 +214,10 @@ src/
209
214
  │ ├── directions.ts # maps_directions tool
210
215
  │ ├── elevation.ts # maps_elevation tool
211
216
  │ ├── timezone.ts # maps_timezone tool
212
- └── weather.ts # maps_weather tool
217
+ ├── weather.ts # maps_weather tool
218
+ │ ├── exploreArea.ts # maps_explore_area (composite)
219
+ │ ├── planRoute.ts # maps_plan_route (composite)
220
+ │ └── comparePlaces.ts # maps_compare_places (composite)
213
221
  └── utils/
214
222
  ├── apiKeyManager.ts # API key management
215
223
  └── requestContext.ts # Per-request context (API key isolation)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cablate/mcp-google-map",
3
- "version": "0.0.33",
3
+ "version": "0.0.34",
4
4
  "mcpName": "io.github.cablate/google-map",
5
5
  "description": "Google Maps tools for AI agents — geocode, search, directions, elevation via MCP server or standalone CLI",
6
6
  "type": "module",
@@ -35,7 +35,7 @@ Without this Skill, the agent can only guess or refuse when asked "how do I get
35
35
 
36
36
  ## Tool Map
37
37
 
38
- 8 tools in three categories — pick by scenario:
38
+ 13 tools in four categories — pick by scenario:
39
39
 
40
40
  ### Place Discovery
41
41
  | Tool | When to use | Example |
@@ -52,10 +52,19 @@ Without this Skill, the agent can only guess or refuse when asked "how do I get
52
52
  | `directions` | How to get from A to B | "Route from Taipei Main Station to the airport" |
53
53
  | `distance-matrix` | Compare distances across multiple points | "Which of these 3 hotels is closest to the airport?" |
54
54
 
55
- ### Terrain
55
+ ### Environment
56
56
  | Tool | When to use | Example |
57
57
  |------|-------------|---------|
58
58
  | `elevation` | Query altitude | "Elevation profile along this hiking trail" |
59
+ | `timezone` | Need local time at a destination | "What time is it in Tokyo?" |
60
+ | `weather` | Weather at a location (current or forecast) | "What's the weather in Paris?" |
61
+
62
+ ### Composite (one-call shortcuts)
63
+ | Tool | When to use | Example |
64
+ |------|-------------|---------|
65
+ | `explore-area` | Overview of a neighborhood | "What's around Tokyo Tower?" |
66
+ | `plan-route` | Multi-stop optimized itinerary | "Visit these 5 places efficiently" |
67
+ | `compare-places` | Side-by-side comparison | "Which ramen shop near Shibuya?" |
59
68
 
60
69
  ---
61
70
 
@@ -160,6 +160,95 @@ Response:
160
160
 
161
161
  ---
162
162
 
163
+ ## timezone
164
+
165
+ Get timezone and local time for coordinates.
166
+
167
+ ```bash
168
+ exec timezone '{"latitude": 35.6586, "longitude": 139.7454}'
169
+ ```
170
+
171
+ | Param | Type | Required | Description |
172
+ |-------|------|----------|-------------|
173
+ | latitude | number | yes | Latitude |
174
+ | longitude | number | yes | Longitude |
175
+ | timestamp | number | no | Unix timestamp in ms (defaults to now) |
176
+
177
+ Response:
178
+ ```json
179
+ { "timeZoneId": "Asia/Tokyo", "timeZoneName": "Japan Standard Time", "utcOffset": 32400, "dstOffset": 0, "localTime": "2026-03-14T16:19:16.000" }
180
+ ```
181
+
182
+ ---
183
+
184
+ ## weather
185
+
186
+ Get current weather or forecast. Coverage: most regions, but China, Japan, South Korea, Cuba, Iran, North Korea, Syria are unsupported.
187
+
188
+ ```bash
189
+ exec weather '{"latitude": 37.4220, "longitude": -122.0841}'
190
+ exec weather '{"latitude": 37.4220, "longitude": -122.0841, "type": "forecast_daily", "forecastDays": 3}'
191
+ ```
192
+
193
+ | Param | Type | Required | Description |
194
+ |-------|------|----------|-------------|
195
+ | latitude | number | yes | Latitude |
196
+ | longitude | number | yes | Longitude |
197
+ | type | string | no | `current` (default), `forecast_daily`, `forecast_hourly` |
198
+ | forecastDays | number | no | 1-10, for forecast_daily (default: 5) |
199
+ | forecastHours | number | no | 1-240, for forecast_hourly (default: 24) |
200
+
201
+ ---
202
+
203
+ ## explore-area (composite)
204
+
205
+ Explore a neighborhood in one call. Internally chains geocode → search-nearby (per type) → place-details (top N).
206
+
207
+ ```bash
208
+ exec explore-area '{"location": "Tokyo Tower", "types": ["restaurant", "cafe"], "topN": 2}'
209
+ ```
210
+
211
+ | Param | Type | Required | Description |
212
+ |-------|------|----------|-------------|
213
+ | location | string | yes | Address or landmark |
214
+ | types | string[] | no | Place types to search (default: restaurant, cafe, attraction) |
215
+ | radius | number | no | Search radius in meters (default: 1000) |
216
+ | topN | number | no | Top results per type to get details for (default: 3) |
217
+
218
+ ---
219
+
220
+ ## plan-route (composite)
221
+
222
+ Plan an optimized multi-stop route. Internally chains geocode → distance-matrix → nearest-neighbor → directions.
223
+
224
+ ```bash
225
+ exec plan-route '{"stops": ["Tokyo Tower", "Shibuya Station", "Shinjuku Station", "Ueno Park"], "mode": "driving"}'
226
+ ```
227
+
228
+ | Param | Type | Required | Description |
229
+ |-------|------|----------|-------------|
230
+ | stops | string[] | yes | Addresses or landmarks (min 2) |
231
+ | mode | string | no | driving, walking, bicycling, transit (default: driving) |
232
+ | optimize | boolean | no | Auto-optimize visit order (default: true) |
233
+
234
+ ---
235
+
236
+ ## compare-places (composite)
237
+
238
+ Compare places side-by-side. Internally chains search-places → place-details → distance-matrix.
239
+
240
+ ```bash
241
+ exec compare-places '{"query": "ramen near Shibuya", "limit": 3}'
242
+ ```
243
+
244
+ | Param | Type | Required | Description |
245
+ |-------|------|----------|-------------|
246
+ | query | string | yes | Search query |
247
+ | userLocation | object | no | `{ latitude, longitude }` — adds distance/drive time |
248
+ | limit | number | no | Max places to compare (default: 5) |
249
+
250
+ ---
251
+
163
252
  ## Chaining Patterns
164
253
 
165
254
  ### Basic Patterns