mcp-google-map 0.2.0 → 0.3.0

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
@@ -1,4 +1,4 @@
1
- # mcp-google-map (0.2.0)
1
+ # mcp-google-map (0.3.0)
2
2
 
3
3
  <p align="center">
4
4
  <img src="https://img.shields.io/badge/node-%3E%3D22-339933?style=flat-square&logo=nodedotjs&logoColor=white" alt="Node.js >= 22">
@@ -89,7 +89,7 @@ gcloud services enable places-backend-new.googleapis.com \
89
89
 
90
90
  **Prerequisites**: Node.js **>= 22** and a Google Maps API key (see [Requisiti](#requisiti)).
91
91
 
92
- ### From npm (once published)
92
+ ### From npm
93
93
 
94
94
  ```bash
95
95
  npm install -g mcp-google-map
@@ -170,6 +170,47 @@ scripts/test.sh # test unitari (nessuna API key richiesta)
170
170
  }
171
171
  ```
172
172
 
173
+ ### pi CLI
174
+
175
+ pi legge i server MCP da `~/.pi/agent/mcp.json` (utente) o `.pi/mcp.json` (progetto, richiede trust). Voce stdio per questo server:
176
+
177
+ ```json
178
+ {
179
+ "mcpServers": {
180
+ "maps": {
181
+ "command": "node",
182
+ "args": ["/percorso/assoluto/a/mcp-google-map/dist/cli.js", "--stdio"],
183
+ "env": { "GOOGLE_MAPS_API_KEY": "${GOOGLE_MAPS_API_KEY}" }
184
+ }
185
+ }
186
+ }
187
+ ```
188
+
189
+ - Da terminale: `pi mcp add maps -- node /percorso/assoluto/a/mcp-google-map/dist/cli.js --stdio` (aggiungere `--env GOOGLE_MAPS_API_KEY=...` per la chiave).
190
+ - `${GOOGLE_MAPS_API_KEY}` espande la variabile d'ambiente al volo: la chiave non resta cablata nel file di configurazione.
191
+ - Dopo una modifica di `mcp.json` esterna alla sessione, eseguire `/reload` in pi; `/mcp` ispeziona stato, tool ed errori di connessione.
192
+ - I tool appaiono con il prefisso `mcp__<server>__`: `mcp__maps__maps_geocode`, `mcp__maps__maps_search_places`, ...
193
+
194
+ ### OpenClaw
195
+
196
+ OpenClaw gestisce i server MCP in `~/.openclaw/openclaw.json` tramite CLI (verificato su OpenClaw 2026.4.21):
197
+
198
+ ```bash
199
+ openclaw mcp set maps '{"command":"node","args":["/percorso/assoluto/a/mcp-google-map/dist/cli.js","--stdio"],"env":{"GOOGLE_MAPS_API_KEY":"AIza..."},"description":"Google Maps: Places API (New), geocoding, routes, weather"}'
200
+ ```
201
+
202
+ - Senza installazione locale: usare `"command":"npx","args":["-y","mcp-google-map","--stdio"]` (esegue il pacchetto npm pubblicato).
203
+ - Dopo la modifica ricaricare il gateway o riavviare la sessione agente perché il nuovo server venga collegato.
204
+ - Ispezione e rimozione: `openclaw mcp list`, `openclaw mcp show maps`, `openclaw mcp unset maps`.
205
+ - L'agente OpenClaw può installare e configurare il server in autonomia (shell + `openclaw mcp set`); la creazione della API key su Google Cloud Console resta un'operazione umana.
206
+
207
+ ### Prerequisiti di configurazione
208
+
209
+ 1. **Una sola API key**: crea `GOOGLE_MAPS_API_KEY` su <https://console.cloud.google.com/apis/credentials> e abilita i servizi elencati nella tabella [API Google Cloud richieste](#api-google-cloud-richieste).
210
+ 2. **Minimo operativo**: Places API (New) + Geocoding API; abilitare gli altri servizi solo per i tool corrispondenti.
211
+ 3. **Limitare l'esposizione**: `GOOGLE_MAPS_ENABLED_TOOLS=maps_geocode,maps_search_places,maps_place_details` riduce i tool registrati (e il contesto per l'LLM).
212
+ 4. **Verifica post-installazione**: `mcp-google-map doctor` (nessuna chiamata di rete), poi `mcp-google-map doctor --live --apikey "AIza..."` (probe reali su Geocoding, Places, Routes).
213
+
173
214
  ## Struttura del progetto
174
215
 
175
216
  ```
@@ -54,6 +54,42 @@ scripts/start-http.sh --port 8123 --host 0.0.0.0
54
54
 
55
55
  Ogni sessione MCP (`mcp-session-id`) può ricevere una API key propria via header `X-Goog-Api-Key`: le chiamate dei tool usano la chiave della sessione, non quella globale.
56
56
 
57
+ ## Registrazione nei client MCP
58
+
59
+ ### pi CLI
60
+
61
+ Voce stdio per `~/.pi/agent/mcp.json` (utente) o `.pi/mcp.json` (progetto, richiede trust):
62
+
63
+ ```json
64
+ {
65
+ "mcpServers": {
66
+ "maps": {
67
+ "command": "node",
68
+ "args": ["/percorso/assoluto/a/mcp-google-map/dist/cli.js", "--stdio"],
69
+ "env": { "GOOGLE_MAPS_API_KEY": "${GOOGLE_MAPS_API_KEY}" }
70
+ }
71
+ }
72
+ }
73
+ ```
74
+
75
+ - `${VAR}` espande variabili d'ambiente: la chiave non resta cablata nel file di configurazione.
76
+ - `pi mcp add maps -- node /percorso/assoluto/a/mcp-google-map/dist/cli.js --stdio` registra da terminale; `/reload` in sessione dopo modifiche esterne; `/mcp` ispeziona la connessione.
77
+
78
+ ### OpenClaw
79
+
80
+ ```bash
81
+ openclaw mcp set maps '{"command":"node","args":["/percorso/assoluto/a/mcp-google-map/dist/cli.js","--stdio"],"env":{"GOOGLE_MAPS_API_KEY":"AIza..."},"description":"Google Maps MCP"}'
82
+ ```
83
+
84
+ - Alternativa senza installazione: `"command":"npx","args":["-y","mcp-google-map","--stdio"]`.
85
+ - Ricaricare il gateway o riavviare la sessione agente dopo la modifica; `openclaw mcp list` / `openclaw mcp show maps` per verificare.
86
+
87
+ ### Prerequisiti chiave e API Google
88
+
89
+ - **Una sola chiave** `GOOGLE_MAPS_API_KEY` (priorità di risoluzione in [Google Maps API key](#google-maps-api-key)); servizi da abilitare e sottoinsieme minimo (Places API (New) + Geocoding API): tabella in [README.md](../README.md#api-google-cloud-richieste).
90
+ - Limitare i tool esposti con [`GOOGLE_MAPS_ENABLED_TOOLS`](#variabili-dambiente).
91
+ - Verifica post-installazione: `node dist/cli.js doctor` e `node dist/cli.js doctor --live --apikey "AIza..."`.
92
+
57
93
  ## Comandi CLI
58
94
 
59
95
  ```bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-google-map",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Google Maps MCP server — 18 tools for AI agents: geocoding, Places API (New) search with server-side filters, directions, distance matrix and more, via stdio or Streamable HTTP",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",