@shyzus/mcp-geocrafter 1.5.0 → 1.5.1

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
@@ -11,6 +11,8 @@ GeoCrafter is a clean, modular MCP server for geocoding and reverse geocoding wi
11
11
  ![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue)
12
12
  ![MCP](https://img.shields.io/badge/MCP-2025--11--25-orange)
13
13
  ![ChatGPT](https://img.shields.io/badge/ChatGPT-MCP-purple)
14
+ ![Google](https://img.shields.io/badge/Google%20Geocoding-supported-4285F4)
15
+ ![Photon](https://img.shields.io/badge/Photon%20OSM-supported-7EB900)
14
16
 
15
17
  ---
16
18
 
@@ -105,24 +107,20 @@ MCP (Model Context Protocol) is an open standard created by Anthropic that allow
105
107
 
106
108
  ### Use with Cursor / Claude Desktop / Warp
107
109
 
108
- **The easiest way** - Install the npm client that connects to the remote server:
110
+ **The easiest way** - Install the npm client that connects to the remote server (Google + Photon providers are both available server-side):
109
111
 
110
112
  ```json
111
113
  {
112
114
  "mcpServers": {
113
115
  "mcp-geocrafter": {
114
116
  "command": "npx",
115
- "args": ["-y", "@shyzus/mcp-geocrafter"],
116
- "env": {
117
- "GOOGLE_API_KEY": "your-google-api-key",
118
- "GEOCODING_PROVIDER": "google"
119
- }
117
+ "args": ["-y", "@shyzus/mcp-geocrafter"]
120
118
  }
121
119
  }
122
120
  }
123
121
  ```
124
122
 
125
- > `GOOGLE_API_KEY` enables the Google provider. `GEOCODING_PROVIDER` sets the default (optional, defaults to `photon` if omitted). The LLM can override the provider per request.
123
+ > This connects to the hosted server at `https://geocrafter.rankorr.red/mcp` which has both Google and Photon providers configured. The LLM picks the best provider per query, or the user can force one.
126
124
 
127
125
  **Config file locations:**
128
126
  - **Cursor**: `~/.cursor/mcp.json` (macOS/Linux) or `%APPDATA%\Cursor\mcp.json` (Windows)
@@ -131,6 +129,26 @@ MCP (Model Context Protocol) is an open standard created by Anthropic that allow
131
129
 
132
130
  ---
133
131
 
132
+ ### Google API Key Setup
133
+
134
+ To use the Google provider, you need a Google API key. There are **two ways** to provide it:
135
+
136
+ **Option A — Server-side (env var):** Set `GOOGLE_API_KEY` on the server. All clients benefit automatically.
137
+
138
+ **Option B — Per-request (tool parameter):** Pass `apiKey` in the tool call. Useful for N8N, automation workflows, or when you don't control the server. The key is never logged or returned in responses.
139
+
140
+ **To get a key:**
141
+
142
+ 1. Go to [Google Cloud Console](https://console.cloud.google.com)
143
+ 2. Create or select a project
144
+ 3. **APIs & Services** → **Library** → search **"Geocoding API"** → **Enable**
145
+ 4. **APIs & Services** → **Credentials** → **Create Credentials** → **API Key**
146
+ 5. Copy the key
147
+
148
+ > **Pricing**: First 10,000 requests/month are **free**. Beyond that, ~4.34€/1k requests. [Details](https://developers.google.com/maps/documentation/geocoding/usage-and-billing)
149
+
150
+ ---
151
+
134
152
  ### Use with ChatGPT
135
153
 
136
154
  A production server is available and ready to use!
@@ -296,6 +314,19 @@ The MCP server already works in Cursor! Ask me a question about locations and I'
296
314
 
297
315
  2. Configure in `~/Library/Application Support/Claude/claude_desktop_config.json`:
298
316
 
317
+ **Option A — Use the remote server (recommended, no API key needed):**
318
+ ```json
319
+ {
320
+ "mcpServers": {
321
+ "mcp-geocrafter": {
322
+ "command": "npx",
323
+ "args": ["-y", "@shyzus/mcp-geocrafter"]
324
+ }
325
+ }
326
+ }
327
+ ```
328
+
329
+ **Option B — Run locally with your own Google API key:**
299
330
  ```json
300
331
  {
301
332
  "mcpServers": {
@@ -303,7 +334,11 @@ The MCP server already works in Cursor! Ask me a question about locations and I'
303
334
  "command": "node",
304
335
  "args": [
305
336
  "/absolute/path/to/mcp-location/dist/index.js"
306
- ]
337
+ ],
338
+ "env": {
339
+ "GOOGLE_API_KEY": "your-google-api-key",
340
+ "GEOCODING_PROVIDER": "google"
341
+ }
307
342
  }
308
343
  }
309
344
  }
@@ -485,9 +520,12 @@ CORS_ORIGIN=* # CORS origin (default: * in dev, https://cha
485
520
 
486
521
  ### Providers configuration
487
522
 
488
- - **Google**: Set `GOOGLE_API_KEY` to enable. Get a key from [Google Cloud Console](https://console.cloud.google.com) → APIs & Services → Credentials. Enable "Geocoding API" first.
523
+ - **Google**: Two options to provide the API key:
524
+ - **Server-side**: Set `GOOGLE_API_KEY` environment variable — all clients benefit automatically
525
+ - **Per-request**: Pass `apiKey` parameter in the tool call — for N8N, automations, or when you don't control the server
489
526
  - **Photon**: Always available, no configuration needed. You can optionally self-host (set `PHOTON_BASE_URL`).
490
527
  - The `provider` parameter on `search_address` and `reverse_geocode` tools lets the LLM override the default per request.
528
+ - The `apiKey` parameter is never logged, never stored, never returned in responses.
491
529
 
492
530
  ---
493
531
 
@@ -6,7 +6,7 @@ const SERVER_URL = process.argv[2] || 'https://geocrafter.rankorr.red/mcp';
6
6
  // Proxy HTTP MCP server to stdio for Cursor
7
7
  const server = new McpServer({
8
8
  name: 'geocrafter-http-proxy',
9
- version: '1.0.5',
9
+ version: '1.5.0',
10
10
  });
11
11
  // Forward all requests to HTTP server
12
12
  async function forwardRequest(method, params) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shyzus/mcp-geocrafter",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
4
4
  "description": "GeoCrafter - MCP server for geocoding, reverse geocoding, geohash and distance calculation - Powered by Photon API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",