Skip to content

Commit e6f51d2

Browse files
cablateclaude
andauthored
docs: sync all tool references to 13 tools + add tool change checklist (#45)
Update all documentation to reflect current 13 tools (10 atomic + 3 composite): - README: tool count (4 places), Available Tools table, vs Grounding Lite table, project structure, exec mode tool list - SKILL.md: Tool Map table — add Environment and Composite categories - tools-api.md: add timezone, weather, explore-area, plan-route, compare-places parameter docs - CLAUDE.md: add Tool Change Checklist (9-file update list) Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 87a53f2 commit e6f51d2

File tree

4 files changed

+132
-8
lines changed

4 files changed

+132
-8
lines changed

CLAUDE.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,21 @@
44

55
- **永遠不要直接推 main**。所有變更都要先開 feature branch、推上去、建 PR,等審核通過後才合併。
66
- Commit 完成後走 `git checkout -b feat/xxx``git push -u origin feat/xxx``gh pr create` 流程。
7+
8+
## Tool 變更 Checklist
9+
10+
每次新增、刪除、或重新命名 tool 時,以下所有檔案都必須同步更新:
11+
12+
| # | 檔案 | 更新內容 |
13+
|---|------|---------|
14+
| 1 | `src/tools/maps/*.ts` | Tool 定義(NAME, DESCRIPTION, SCHEMA, ACTION) |
15+
| 2 | `src/config.ts` | 註冊 tool + annotations |
16+
| 3 | `src/cli.ts` | EXEC_TOOLS 列表 + switch case |
17+
| 4 | `tests/smoke.test.ts` | expectedTools 陣列 + tool count assertions |
18+
| 5 | `README.md` | tool 數量(header、vs Grounding Lite 表、Server Info、exec mode)+ Available Tools 表格 + Project Structure |
19+
| 6 | `skills/google-maps/SKILL.md` | Tool Map 表格 |
20+
| 7 | `skills/google-maps/references/tools-api.md` | 參數文件 + chaining patterns |
21+
| 8 | `server.json` | description(如有提到 tool 數量) |
22+
| 9 | `package.json` | description(如有提到 tool 數量) |
23+
24+
漏更任何一個都會造成文件和實際行為不一致。PR 提交前請逐一確認。

README.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,23 @@
66

77
Give your AI agent the ability to understand the physical world — geocode, route, search, and reason about locations.
88

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)
1010
- **3 modes** — stdio, StreamableHTTP, standalone exec CLI
1111
- **Agent Skill** — built-in skill definition teaches AI how to chain geo tools ([`skills/google-maps/`](./skills/google-maps/))
1212

1313
### vs Google Grounding Lite
1414

1515
| | This project | [Grounding Lite](https://cloud.google.com/blog/products/ai-machine-learning/announcing-official-mcp-support-for-google-services) |
1616
|---|---|---|
17-
| Tools | **10** | 3 |
17+
| Tools | **13** | 3 |
1818
| Geocoding | Yes | No |
1919
| Step-by-step directions | Yes | No |
2020
| Elevation | Yes | No |
2121
| Distance matrix | Yes | No |
2222
| Place details | Yes | No |
2323
| Timezone | Yes | No |
2424
| Weather | Yes | Yes |
25+
| Composite tools (explore, plan, compare) | Yes | No |
2526
| Open source | MIT | No |
2627
| Self-hosted | Yes | Google-managed only |
2728
| Agent Skill | Yes | No |
@@ -56,7 +57,11 @@ Special thanks to [@junyinnnn](https://github.com/junyinnnn) for helping add sup
5657
| `maps_directions` | Get step-by-step navigation between two points with route details. |
5758
| `maps_elevation` | Get elevation (meters above sea level) for geographic coordinates. |
5859
| `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. |
6065

6166
All tools are annotated with `readOnlyHint: true` and `destructiveHint: false` — MCP clients can auto-approve these without user confirmation.
6267

@@ -106,7 +111,7 @@ Then configure your MCP client:
106111
### Server Information
107112

108113
- **Transport**: stdio (`--stdio`) or Streamable HTTP (default)
109-
- **Tools**: 10 Google Maps tools
114+
- **Tools**: 13 Google Maps tools (10 atomic + 3 composite)
110115

111116
### CLI Exec Mode (Agent Skill)
112117

@@ -117,7 +122,7 @@ npx @cablate/mcp-google-map exec geocode '{"address":"Tokyo Tower"}'
117122
npx @cablate/mcp-google-map exec search-places '{"query":"ramen in Tokyo"}'
118123
```
119124

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.
121126

122127
### API Key Configuration
123128

@@ -209,7 +214,10 @@ src/
209214
│ ├── directions.ts # maps_directions tool
210215
│ ├── elevation.ts # maps_elevation tool
211216
│ ├── 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)
213221
└── utils/
214222
├── apiKeyManager.ts # API key management
215223
└── requestContext.ts # Per-request context (API key isolation)

skills/google-maps/SKILL.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Without this Skill, the agent can only guess or refuse when asked "how do I get
3535

3636
## Tool Map
3737

38-
8 tools in three categories — pick by scenario:
38+
13 tools in four categories — pick by scenario:
3939

4040
### Place Discovery
4141
| 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
5252
| `directions` | How to get from A to B | "Route from Taipei Main Station to the airport" |
5353
| `distance-matrix` | Compare distances across multiple points | "Which of these 3 hotels is closest to the airport?" |
5454

55-
### Terrain
55+
### Environment
5656
| Tool | When to use | Example |
5757
|------|-------------|---------|
5858
| `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?" |
5968

6069
---
6170

skills/google-maps/references/tools-api.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,95 @@ Response:
160160

161161
---
162162

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+
163252
## Chaining Patterns
164253

165254
### Basic Patterns

0 commit comments

Comments
 (0)