@shyzus/mcp-geocrafter 1.2.3 β†’ 1.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.
Files changed (2) hide show
  1. package/README.md +19 -19
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # πŸ—ΊοΈ GeoCrafter - Geocoding Server for ChatGPT
2
2
 
3
- GeoCrafter is a clean, modular MCP server for geocoding and reverse geocoding - Powered by Nominatim API (OpenStreetMap).
3
+ GeoCrafter is a clean, modular MCP server for geocoding and reverse geocoding - Powered by Photon API (OpenStreetMap + Elasticsearch) with fuzzy matching support.
4
4
 
5
5
  [![CI](https://github.com/Shyzkanza/mcp-location/actions/workflows/ci.yml/badge.svg)](https://github.com/Shyzkanza/mcp-location/actions/workflows/ci.yml)
6
6
  [![npm version](https://img.shields.io/npm/v/@shyzus/mcp-geocrafter)](https://www.npmjs.com/package/@shyzus/mcp-geocrafter)
@@ -17,12 +17,12 @@ GeoCrafter is a clean, modular MCP server for geocoding and reverse geocoding -
17
17
 
18
18
  **This project is independent and unofficial.**
19
19
 
20
- - ❌ **Not affiliated** with OpenStreetMap or Nominatim
20
+ - ❌ **Not affiliated** with OpenStreetMap, Photon or Komoot
21
21
  - ❌ **Not sponsored** by these organizations
22
- - βœ… Uses **public data** from the [Nominatim API](https://nominatim.openstreetmap.org/)
22
+ - βœ… Uses **public data** from the [Photon API](https://photon.komoot.io/) (OpenStreetMap)
23
23
  - βœ… Educational and practical purpose project
24
24
 
25
- Geocoding data comes from the Nominatim API, which uses OpenStreetMap data.
25
+ Geocoding data comes from the Photon API (by Komoot), which uses OpenStreetMap data with Elasticsearch-powered fuzzy matching.
26
26
 
27
27
  ---
28
28
 
@@ -64,13 +64,13 @@ ChatGPT will use the MCP server to get the information.
64
64
 
65
65
  ```
66
66
  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
67
- β”‚ ChatGPT β”‚ ◄─────► β”‚ MCP Server β”‚ ◄─────► β”‚ Nominatim β”‚
68
- β”‚ β”‚ HTTP β”‚ (Node.js) β”‚ HTTP β”‚ API β”‚
67
+ β”‚ ChatGPT β”‚ ◄─────► β”‚ MCP Server β”‚ ◄─────► β”‚ Photon β”‚
68
+ β”‚ β”‚ HTTP β”‚ (Node.js) β”‚ HTTP β”‚ API β”‚
69
69
  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
70
70
  ```
71
71
 
72
72
  1. **ChatGPT** calls your MCP server via the [Model Context Protocol](https://modelcontextprotocol.io/)
73
- 2. **The MCP server** fetches data from the Nominatim API
73
+ 2. **The MCP server** fetches data from the Photon API (OpenStreetMap + Elasticsearch)
74
74
  3. **The results** are returned to ChatGPT
75
75
 
76
76
  ### MCP Protocol
@@ -353,7 +353,7 @@ mcp-location/
353
353
  β”‚ β”œβ”€β”€ __tests__/
354
354
  β”‚ β”‚ └── config.test.ts # Tests config
355
355
  β”‚ β”œβ”€β”€ client/
356
- β”‚ β”‚ └── nominatimClient.ts # Client API Nominatim
356
+ β”‚ β”‚ └── photonClient.ts # Client API Photon (fuzzy matching)
357
357
  β”‚ β”œβ”€β”€ tools/
358
358
  β”‚ β”‚ β”œβ”€β”€ searchAddress.ts # Tool: adresse β†’ GPS
359
359
  β”‚ β”‚ β”œβ”€β”€ reverseGeocode.ts # Tool: GPS β†’ adresse
@@ -435,16 +435,16 @@ Create a `.env` file:
435
435
  ```bash
436
436
  PORT=3000 # HTTP server port
437
437
  NODE_ENV=production # Environment
438
- NOMINATIM_BASE_URL=https://nominatim.openstreetmap.org # Optional
439
- NOMINATIM_USER_AGENT=MyApp/1.0 # Optional (recommended by Nominatim)
438
+ PHOTON_BASE_URL=https://photon.komoot.io # Optional (default: Komoot's public instance)
439
+ USER_AGENT=MyApp/1.0 # Optional
440
440
  CORS_ORIGIN=* # CORS origin (default: * in dev, https://chatgpt.com in prod)
441
441
  ```
442
442
 
443
- ### Customize the Nominatim API
443
+ ### Customize the Photon API
444
444
 
445
- The Nominatim API is public but you can:
446
- 1. Use a custom instance (set `NOMINATIM_BASE_URL`)
447
- 2. Set a custom User-Agent (recommended, set `NOMINATIM_USER_AGENT`)
445
+ The Photon API is public but you can:
446
+ 1. Use a self-hosted Photon instance (set `PHOTON_BASE_URL`)
447
+ 2. Set a custom User-Agent (set `USER_AGENT`)
448
448
 
449
449
  ---
450
450
 
@@ -456,7 +456,7 @@ This project serves as a **template/base** for future MCP servers with a clean,
456
456
 
457
457
  - **`config.ts`**: Environment variables, constants, validation
458
458
  - **`types.ts`**: Shared TypeScript interfaces
459
- - **`client/`**: External API abstraction (Nominatim)
459
+ - **`client/`**: External API abstraction (Photon)
460
460
  - **`tools/`**: Business logic (validation, transformation, formatting)
461
461
  - **`servers/`**: MCP implementation (stdio/Streamable HTTP), reuses tools
462
462
  - **`utils/errors.ts`**: Custom error classes, formatting
@@ -479,7 +479,7 @@ See [CONTEXT.md](CONTEXT.md) for detailed architecture documentation.
479
479
  - [Apps SDK - MCP Server](https://developers.openai.com/apps-sdk/build/mcp-server) - Server config
480
480
  - [Model Context Protocol](https://modelcontextprotocol.io/) - MCP spec
481
481
  - [MCP SDK TypeScript](https://github.com/modelcontextprotocol/typescript-sdk) - Node.js SDK
482
- - [Nominatim API](https://nominatim.org/release-docs/develop/api/Overview/) - Geocoding API docs
482
+ - [Photon API](https://photon.komoot.io/) - Geocoding API (OpenStreetMap + Elasticsearch)
483
483
 
484
484
  ### Community
485
485
 
@@ -535,7 +535,7 @@ This project is a **complete template** for creating your own ChatGPT apps with
535
535
  ### To create your own app:
536
536
 
537
537
  1. **Duplicate this project**
538
- 2. **Replace the Nominatim API** with your API
538
+ 2. **Replace the Photon API** with your API
539
539
  3. **Modify the tools** in `src/tools/`
540
540
  4. **Customize the configuration** in `src/config.ts`
541
541
  5. **Deploy**!
@@ -562,13 +562,13 @@ MIT - Use freely for your personal or commercial projects.
562
562
 
563
563
  ## πŸ™ Credits & Attributions
564
564
 
565
- - **Geocoding Data** - [Nominatim API](https://nominatim.openstreetmap.org/) - OpenStreetMap data
565
+ - **Geocoding Data** - [Photon API](https://photon.komoot.io/) by [Komoot](https://www.komoot.com/) - OpenStreetMap data
566
566
  - **MCP Protocol** - [Anthropic](https://www.anthropic.com/)
567
567
  - **Apps SDK** - [OpenAI](https://openai.com/)
568
568
 
569
569
  ### Data & Licenses
570
570
 
571
- Geocoding data comes from the Nominatim API which uses OpenStreetMap data. This data is provided under the Open Database License (ODbL).
571
+ Geocoding data comes from the Photon API (by Komoot) which uses OpenStreetMap data. This data is provided under the Open Database License (ODbL).
572
572
 
573
573
  ---
574
574
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shyzus/mcp-geocrafter",
3
- "version": "1.2.3",
3
+ "version": "1.3.0",
4
4
  "description": "GeoCrafter - MCP server for geocoding and reverse geocoding - Powered by Nominatim API",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",