@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.
- package/README.md +19 -19
- 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
|
|
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
|
[](https://github.com/Shyzkanza/mcp-location/actions/workflows/ci.yml)
|
|
6
6
|
[](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
|
|
20
|
+
- β **Not affiliated** with OpenStreetMap, Photon or Komoot
|
|
21
21
|
- β **Not sponsored** by these organizations
|
|
22
|
-
- β
Uses **public data** from the [
|
|
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
|
|
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 β βββββββΊ β
|
|
68
|
-
β β HTTP β (Node.js) β HTTP β
|
|
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
|
|
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
|
-
β β βββ
|
|
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
|
-
|
|
439
|
-
|
|
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
|
|
443
|
+
### Customize the Photon API
|
|
444
444
|
|
|
445
|
-
The
|
|
446
|
-
1. Use a
|
|
447
|
-
2. Set a custom 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 (
|
|
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
|
-
- [
|
|
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
|
|
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** - [
|
|
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
|
|
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
|
|