atlasfetch-mcp 0.2.0 → 0.3.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 +20 -5
- package/dist/api.d.ts +51 -1
- package/dist/api.js +7 -2
- package/dist/api.js.map +1 -1
- package/dist/server.js +247 -11
- package/dist/server.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -2
- package/server.json +3 -3
package/README.md
CHANGED
|
@@ -15,14 +15,16 @@ country: United Kingdom (GB) · region: England (GB-ENG) · municipal: City of W
|
|
|
15
15
|
| Tool | What it does |
|
|
16
16
|
| --- | --- |
|
|
17
17
|
| `lookup_location` | A coordinate becomes the country, region and municipality containing it, with ISO 3166-1 / 3166-2 codes, plus matches from your own boundary sets. Optionally the **nearest street** (ask for the `street` layer), and the point as an H3 cell or Google Plus Code. |
|
|
18
|
+
| `geocode_address` | An address becomes a point, in South Africa today, with a **precision** that says whether the house, the street or only the suburb was found — and what to do about it. |
|
|
18
19
|
| `get_route` | A route between 2 and 25 coordinates by car, bike, foot or truck, with turn-by-turn steps — optionally **around** your own zones, or **measuring** how far it runs inside them. |
|
|
19
20
|
| `list_boundary_sets` | Lists your boundary sets, their counts, and which API keys may query them. |
|
|
20
21
|
| `create_boundary_set` | Creates an empty set for your own polygons. |
|
|
21
22
|
| `add_boundary` | Adds one GeoJSON polygon, with properties returned on every match. |
|
|
23
|
+
| `update_boundary` | Moves or reshapes one boundary, keeping its id, name and properties. |
|
|
22
24
|
|
|
23
|
-
**Good for:** reverse geocoding to administrative areas, finding the street a point is on, geofencing against your own delivery zones or service areas, jurisdiction and region checks, tagging location data with region codes, and routing that keeps out of the areas you name.
|
|
25
|
+
**Good for:** reverse geocoding to administrative areas, finding the street a point is on, geofencing against your own delivery zones or service areas, jurisdiction and region checks, tagging location data with region codes, geocoding delivery addresses in South Africa, and routing that keeps out of the areas you name.
|
|
24
26
|
|
|
25
|
-
**Not for:**
|
|
27
|
+
**Not for:** geocoding outside South Africa (yet), searching for places by name, traffic-aware ETAs, distance matrices, isochrones, map tiles, or downloading boundary geometry.
|
|
26
28
|
|
|
27
29
|
### Directions
|
|
28
30
|
|
|
@@ -42,6 +44,19 @@ Three things worth knowing before you wire it up:
|
|
|
42
44
|
|
|
43
45
|
Plan limits apply: 2 locations on the free plans and up to 25 on Pro, truck is Pro only, and alternatives need exactly 2 locations. Over a cap the answer is a `403` and nothing is billed; a location with no road near it is a `422`, and that one **is** billed, because the route was attempted.
|
|
44
46
|
|
|
47
|
+
### Geocoding
|
|
48
|
+
|
|
49
|
+
`geocode_address` turns one address into a point — `q` on one line, or `address` already split into parts. South Africa today.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
address · confidence 0.96 · 25 Adderley Street, Cape Town, ZA-WC — dispatch
|
|
53
|
+
street · confidence 0.47 · ambiguous · Long Street, Cape Town, ZA-WC — ask the customer before dispatching
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
**Read the precision before you use the point.** `address` is the house; `interpolated` is estimated between the numbers either side; `intersection` is a street corner ("Cnr Main Rd and Belmont Rd"); `street` is the right street but not the house; `locality` is only the suburb. The result line applies the API's own advice for deliveries: dispatch only on a house- or corner-level answer that is not ambiguous, ask the recipient for a pin on a street-level one, and ask the customer when it is ambiguous. In South Africa most answers are street-level, because OpenStreetMap has house numbers on about 13% of street names.
|
|
57
|
+
|
|
58
|
+
One address per call, at 1 lookup each, found or not. That is deliberate: a delivery list goes through one row at a time, where you can see what it spends. Programs with thousands of rows should call `POST /geocode/batch` on the API directly.
|
|
59
|
+
|
|
45
60
|
### Streets
|
|
46
61
|
|
|
47
62
|
Add the `street` layer and the answer includes the nearest street, and the house number where one is mapped. It is **worldwide**, and **opt-in** — not part of the default `country, region, municipal`.
|
|
@@ -56,7 +71,7 @@ You always get three answers — for 5 m, 20 m and unlimited — because "the ne
|
|
|
56
71
|
]
|
|
57
72
|
```
|
|
58
73
|
|
|
59
|
-
**Two nulls that mean different things:** `"street": null` means there is no street data for that country, while an entry whose fields are null means nothing was within that radius. `streetNumber` and `postcode` are strings (`44A`, `12-14`, `0181`); house numbers are rare outside well-mapped areas
|
|
74
|
+
**Two nulls that mean different things:** `"street": null` means there is no street data for that country, while an entry whose fields are null means nothing was within that radius. `streetNumber` and `postcode` are strings (`44A`, `12-14`, `0181`); house numbers are rare outside well-mapped areas. Set `streetGeometry` and each answer also carries the street's line, trimmed to about 250 m — leave it off unless something will draw it.
|
|
60
75
|
|
|
61
76
|
## Install
|
|
62
77
|
|
|
@@ -90,7 +105,7 @@ Requires Node 20 or newer.
|
|
|
90
105
|
|
|
91
106
|
The demo key is shared by **every** anonymous user on the internet — one pooled quota and rate limit. Fine for a first look, wrong for anything real.
|
|
92
107
|
|
|
93
|
-
Create your own at [atlasfetch.xyz/dashboard](https://atlasfetch.xyz/dashboard) and set `ATLASFETCH_API_KEY`. The free Personal plan needs no card.
|
|
108
|
+
Create your own at [atlasfetch.xyz/dashboard](https://atlasfetch.xyz/dashboard) and set `ATLASFETCH_API_KEY`. The free Personal plan needs no card. You can copy a key from the dashboard at any time — so restrict it to your own domains there. Keys made before 12 October 2026 were revoked; if yours stops working, copy a live one.
|
|
94
109
|
|
|
95
110
|
| Variable | Default | Purpose |
|
|
96
111
|
| --- | --- | --- |
|
|
@@ -105,7 +120,7 @@ Create your own at [atlasfetch.xyz/dashboard](https://atlasfetch.xyz/dashboard)
|
|
|
105
120
|
|
|
106
121
|
## Billing
|
|
107
122
|
|
|
108
|
-
|
|
123
|
+
A lookup or a geocoded address is one lookup; a route is 10 on the standard plans. A lookup is one, however many layers, sets or grid codes it touches. Metering happens before matching, so a lookup that matches nothing still counts. Requests rejected as invalid or rate-limited are not billed.
|
|
109
124
|
|
|
110
125
|
## Development
|
|
111
126
|
|
package/dist/api.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* only `atlasfetch-mcp/<version>` from it — never the rest, and never anything
|
|
12
12
|
* about the user. See src/lib/clientId.ts in the API.
|
|
13
13
|
*/
|
|
14
|
-
export declare const USER_AGENT = "atlasfetch-mcp/0.
|
|
14
|
+
export declare const USER_AGENT = "atlasfetch-mcp/0.3.1 (+https://github.com/atlasfetch-dev/atlasfetch-mcp)";
|
|
15
15
|
export declare function baseUrl(): string;
|
|
16
16
|
/** A failure the caller should be told about verbatim, not retried blindly. */
|
|
17
17
|
export declare class ApiError extends Error {
|
|
@@ -61,6 +61,11 @@ export interface StreetAnswer {
|
|
|
61
61
|
streetName: string | null;
|
|
62
62
|
postcode: string | null;
|
|
63
63
|
distanceMeters: number | null;
|
|
64
|
+
/** Only when streetgeom was asked for: the named street, trimmed to about 250 m. */
|
|
65
|
+
geometry?: string | {
|
|
66
|
+
type: string;
|
|
67
|
+
coordinates: number[][];
|
|
68
|
+
} | null;
|
|
64
69
|
}
|
|
65
70
|
export interface LookupResponse {
|
|
66
71
|
/**
|
|
@@ -83,6 +88,51 @@ export interface LookupResponse {
|
|
|
83
88
|
message: string;
|
|
84
89
|
}>;
|
|
85
90
|
}
|
|
91
|
+
export interface GeocodeResult {
|
|
92
|
+
lat: number;
|
|
93
|
+
lng: number;
|
|
94
|
+
/** address, interpolated, street or locality: how much of the address was found. */
|
|
95
|
+
precision: 'address' | 'interpolated' | 'intersection' | 'street' | 'locality';
|
|
96
|
+
/** 0 to 1. Ranks answers; not a probability. */
|
|
97
|
+
confidence: number;
|
|
98
|
+
/** A same-named street elsewhere scored about as well. */
|
|
99
|
+
ambiguous: boolean;
|
|
100
|
+
/** What was used, spelt as the data spells it. */
|
|
101
|
+
matched: {
|
|
102
|
+
housenumber?: string;
|
|
103
|
+
street?: string;
|
|
104
|
+
/** A corner's second street; only with precision intersection. */
|
|
105
|
+
crossStreet?: string;
|
|
106
|
+
locality?: string;
|
|
107
|
+
region?: string;
|
|
108
|
+
country?: string;
|
|
109
|
+
};
|
|
110
|
+
/** Parts of the address that matched nothing. */
|
|
111
|
+
unmatched: string[];
|
|
112
|
+
sets?: Record<string, Array<{
|
|
113
|
+
name: string;
|
|
114
|
+
properties?: unknown;
|
|
115
|
+
}>>;
|
|
116
|
+
base?: Record<string, LayerHit | null>;
|
|
117
|
+
geometry?: string | {
|
|
118
|
+
type: string;
|
|
119
|
+
coordinates: number[][];
|
|
120
|
+
} | null;
|
|
121
|
+
}
|
|
122
|
+
export interface GeocodeResponse {
|
|
123
|
+
result: GeocodeResult | null;
|
|
124
|
+
errors: Array<{
|
|
125
|
+
type: string;
|
|
126
|
+
message: string;
|
|
127
|
+
}>;
|
|
128
|
+
}
|
|
129
|
+
export interface StoredBoundary {
|
|
130
|
+
id: string;
|
|
131
|
+
set?: string;
|
|
132
|
+
name: string;
|
|
133
|
+
properties?: unknown;
|
|
134
|
+
pointCount?: number;
|
|
135
|
+
}
|
|
86
136
|
export interface RouteStep {
|
|
87
137
|
/** depart, arrive, continue, turn-left, …, roundabout, ferry, other. */
|
|
88
138
|
maneuver: string;
|
package/dist/api.js
CHANGED
|
@@ -102,8 +102,13 @@ export async function request(path, init = {}) {
|
|
|
102
102
|
case 400:
|
|
103
103
|
throw new ApiError(`The request was rejected: ${detail}`, 400);
|
|
104
104
|
case 401:
|
|
105
|
-
throw new ApiError(
|
|
106
|
-
|
|
105
|
+
throw new ApiError(
|
|
106
|
+
// Since 2026-10-12 keys can be shown again in the dashboard, and every key
|
|
107
|
+
// made before then was revoked. Someone holding an old key is told to copy
|
|
108
|
+
// a live one, not to start over.
|
|
109
|
+
`The API key was rejected (${detail}). Copy a live key from ` +
|
|
110
|
+
'https://atlasfetch.xyz/dashboard, where keys can be shown at any time, and set it as ' +
|
|
111
|
+
'ATLASFETCH_API_KEY. Keys made before 12 October 2026 were revoked.', 401);
|
|
107
112
|
case 402:
|
|
108
113
|
throw new ApiError(`The monthly lookup allowance is exhausted (${detail}). It resets at the start of the next ` +
|
|
109
114
|
'billing period; retrying before then will fail the same way.', 402);
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,gBAAgB,GAAG,4BAA4B,CAAA;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,OAAO,sDAAsD,CAAA;AAEzG,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACjF,CAAC;AAED,+EAA+E;AAC/E,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGtB;IAEA;IAJX,YACE,OAAe,EACN,MAAc;IACvB,4EAA4E;IACnE,YAAqB,KAAK;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAA;QAJL,WAAM,GAAN,MAAM,CAAQ;QAEd,cAAS,GAAT,SAAS,CAAiB;QAGnC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACxB,CAAC;CACF;AAED,IAAI,aAAa,GAAkB,IAAI,CAAA;AAEvC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAA;IACzD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IAEjC,IAAI,aAAa;QAAE,OAAO,aAAa,CAAA;IAEvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;IAChG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,QAAQ,CAChB,oFAAoF;YAClF,8EAA8E,EAChF,QAAQ,CAAC,MAAM,CAChB,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqB,CAAA;IACxD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,QAAQ,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAA;IACnE,CAAC;IACD,aAAa,GAAG,IAAI,CAAC,GAAG,CAAA;IACxB,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAA;AAChD,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAC1B,qFAAqF;IACrF,+EAA+E;IAC/E,8DAA8D,CAAA;AAEhE,KAAK,UAAU,SAAS,CAAC,QAAkB;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAA;QAC1D,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC,UAAU,CAAA;IAC5B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAY,EACZ,OAAwF,EAAE;IAE1F,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAA;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;QAC5B,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,GAAG,EAAE;YAC9B,YAAY,EAAE,UAAU;YACxB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;SAC3E;QACD,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;KACtE,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;IAEpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;IACxC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,GAAG;YACN,MAAM,IAAI,QAAQ,CAAC,6BAA6B,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;QAChE,KAAK,GAAG;YACN,MAAM,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,gBAAgB,GAAG,4BAA4B,CAAA;AAErD;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,OAAO,sDAAsD,CAAA;AAEzG,MAAM,UAAU,OAAO;IACrB,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AACjF,CAAC;AAED,+EAA+E;AAC/E,MAAM,OAAO,QAAS,SAAQ,KAAK;IAGtB;IAEA;IAJX,YACE,OAAe,EACN,MAAc;IACvB,4EAA4E;IACnE,YAAqB,KAAK;QAEnC,KAAK,CAAC,OAAO,CAAC,CAAA;QAJL,WAAM,GAAN,MAAM,CAAQ;QAEd,cAAS,GAAT,SAAS,CAAiB;QAGnC,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;IACxB,CAAC;CACF;AAED,IAAI,aAAa,GAAkB,IAAI,CAAA;AAEvC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAA;IACzD,IAAI,UAAU;QAAE,OAAO,UAAU,CAAA;IAEjC,IAAI,aAAa;QAAE,OAAO,aAAa,CAAA;IAEvC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;IAChG,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,QAAQ,CAChB,oFAAoF;YAClF,8EAA8E,EAChF,QAAQ,CAAC,MAAM,CAChB,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqB,CAAA;IACxD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,QAAQ,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAA;IACnE,CAAC;IACD,aAAa,GAAG,IAAI,CAAC,GAAG,CAAA;IACxB,OAAO,aAAa,CAAA;AACtB,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAA;AAChD,CAAC;AAED,wEAAwE;AACxE,MAAM,CAAC,MAAM,eAAe,GAC1B,qFAAqF;IACrF,+EAA+E;IAC/E,8DAA8D,CAAA;AAEhE,KAAK,UAAU,SAAS,CAAC,QAAkB;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAA;QAC1D,OAAO,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,UAAU,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC,UAAU,CAAA;IAC5B,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,IAAY,EACZ,OAAwF,EAAE;IAE1F,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAA;IAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC,CAAA;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,KAAK,SAAS;YAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;IAC5D,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAChC,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK;QAC5B,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,GAAG,EAAE;YAC9B,YAAY,EAAE,UAAU;YACxB,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;SAC3E;QACD,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;KACtE,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,EAAE;QAAE,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,CAAA;IAEpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAA;IACxC,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,GAAG;YACN,MAAM,IAAI,QAAQ,CAAC,6BAA6B,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;QAChE,KAAK,GAAG;YACN,MAAM,IAAI,QAAQ;YAChB,2EAA2E;YAC3E,2EAA2E;YAC3E,iCAAiC;YACjC,6BAA6B,MAAM,0BAA0B;gBAC3D,uFAAuF;gBACvF,oEAAoE,EACtE,GAAG,CACJ,CAAA;QACH,KAAK,GAAG;YACN,MAAM,IAAI,QAAQ,CAChB,8CAA8C,MAAM,wCAAwC;gBAC1F,8DAA8D,EAChE,GAAG,CACJ,CAAA;QACH,KAAK,GAAG;YACN,MAAM,IAAI,QAAQ,CAAC,gEAAgE,MAAM,EAAE,EAAE,GAAG,CAAC,CAAA;QACnG,KAAK,GAAG;YACN,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,YAAY,EAAE,GAAG,CAAC,CAAA;QACjD,KAAK,GAAG;YACN,0EAA0E;YAC1E,wEAAwE;YACxE,MAAM,IAAI,QAAQ,CAChB,GAAG,MAAM,2EAA2E;gBAClF,iFAAiF,EACnF,GAAG,CACJ,CAAA;QACH,KAAK,GAAG;YACN,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,mDAAmD,EAAE,GAAG,CAAC,CAAA;QACxF,KAAK,GAAG,CAAC,CAAC,CAAC;YACT,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YACtD,MAAM,IAAI,QAAQ,CAChB,eAAe,UAAU,CAAC,CAAC,CAAC,iBAAiB,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,qCAAqC,EACpG,GAAG,EACH,IAAI,CACL,CAAA;QACH,CAAC;QACD,KAAK,GAAG;YACN,MAAM,IAAI,QAAQ,CAChB,kDAAkD,MAAM,yBAAyB;gBAC/E,+DAA+D,EACjE,GAAG,EACH,IAAI,CACL,CAAA;QACH;YACE,MAAM,IAAI,QAAQ,CAAC,uBAAuB,QAAQ,CAAC,MAAM,KAAK,MAAM,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,CAAA;IACpH,CAAC;AACH,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -85,14 +85,55 @@ function summariseRoute(result) {
|
|
|
85
85
|
parts.push(`${skipped} avoid zone${skipped === 1 ? '' : 's'} skipped`);
|
|
86
86
|
return `${parts.join(' · ')} — free-flow, no traffic`;
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* The dispatch table from the API's docs, applied: what to DO with a geocode.
|
|
90
|
+
* Ambiguity is checked first, because an ambiguous house is still the wrong
|
|
91
|
+
* house half the time, however precise it claims to be. A corner ranks with an
|
|
92
|
+
* interpolated house: a known point a driver can find, not a guess along a street.
|
|
93
|
+
*/
|
|
94
|
+
function dispatchAdvice(result) {
|
|
95
|
+
if (result.ambiguous || result.precision === 'locality') {
|
|
96
|
+
return 'ask the customer before dispatching';
|
|
97
|
+
}
|
|
98
|
+
if (result.precision === 'street') {
|
|
99
|
+
return 'right street, not the house: ask the recipient for a pin or a landmark';
|
|
100
|
+
}
|
|
101
|
+
if (result.confidence < 0.5) {
|
|
102
|
+
return 'found, but with low confidence: check with the customer';
|
|
103
|
+
}
|
|
104
|
+
if (result.precision === 'intersection')
|
|
105
|
+
return 'dispatch to the corner';
|
|
106
|
+
return 'dispatch';
|
|
107
|
+
}
|
|
108
|
+
/** "address · 0.96 · 25 Adderley Street, Cape Town, ZA-WC — dispatch". */
|
|
109
|
+
function summariseGeocode(result) {
|
|
110
|
+
if (!result)
|
|
111
|
+
return 'Nothing trustworthy found for that address. The lookup was still billed.';
|
|
112
|
+
const m = result.matched;
|
|
113
|
+
const where = [
|
|
114
|
+
m.crossStreet
|
|
115
|
+
? `${m.street} & ${m.crossStreet}`
|
|
116
|
+
: [m.housenumber, m.street].filter(Boolean).join(' '),
|
|
117
|
+
m.locality,
|
|
118
|
+
m.region ?? m.country,
|
|
119
|
+
].filter(Boolean).join(', ');
|
|
120
|
+
const flags = [
|
|
121
|
+
result.precision,
|
|
122
|
+
`confidence ${result.confidence}`,
|
|
123
|
+
...(result.ambiguous ? ['ambiguous'] : []),
|
|
124
|
+
...(result.unmatched.length > 0 ? [`unmatched: ${result.unmatched.join(', ')}`] : []),
|
|
125
|
+
];
|
|
126
|
+
return `${flags.join(' · ')} · ${where} — ${dispatchAdvice(result)}`;
|
|
127
|
+
}
|
|
88
128
|
export function createServer() {
|
|
89
129
|
const server = new McpServer({ name: 'atlasfetch', version: VERSION }, {
|
|
90
130
|
instructions: 'AtlasFetch answers "which place is this coordinate in?" — the country, region and ' +
|
|
91
131
|
'municipality containing a point, the nearest street and house number (opt-in), ' +
|
|
92
132
|
'plus the boundaries the caller has uploaded themselves. It also routes between ' +
|
|
93
|
-
'coordinates, optionally around those same boundaries (get_route, 10 lookups a call
|
|
94
|
-
'free-flow durations with no traffic)
|
|
95
|
-
'
|
|
133
|
+
'coordinates, optionally around those same boundaries (get_route, 10 lookups a call on the ' +
|
|
134
|
+
'standard plans, free-flow durations with no traffic), and geocodes addresses to ' +
|
|
135
|
+
'coordinates in South Africa (geocode_address, 1 lookup). It does not search for places ' +
|
|
136
|
+
'by name, and it does not return boundary geometry for the reference layers.',
|
|
96
137
|
});
|
|
97
138
|
// ── The lookup ─────────────────────────────────────────────────────────────
|
|
98
139
|
server.registerTool('lookup_location', {
|
|
@@ -105,9 +146,9 @@ export function createServer() {
|
|
|
105
146
|
'Use for: which country, region or municipality a point is in; which street a point is on',
|
|
106
147
|
'(add "street" to base); geofence checks against your own polygons; tagging data with region',
|
|
107
148
|
'codes.',
|
|
108
|
-
'
|
|
109
|
-
'
|
|
110
|
-
'
|
|
149
|
+
'For the other direction, an address to a coordinate, use geocode_address. For a route,',
|
|
150
|
+
'a travel distance or a travel time, use get_route — 10 lookups on the standard plans to',
|
|
151
|
+
'this one’s 1. Do NOT use for place search by name or for fetching boundary geometry.',
|
|
111
152
|
'',
|
|
112
153
|
'Caveats worth repeating to the user: municipal is the finest unit AVAILABLE, not a',
|
|
113
154
|
'consistent kind of thing — Los Angeles returns a city, rural Kansas returns a county, so',
|
|
@@ -123,7 +164,8 @@ export function createServer() {
|
|
|
123
164
|
'Two different nulls: base.street === null means there is no street data for the point’s',
|
|
124
165
|
'country, while an entry whose fields are null means nothing was within that radius —',
|
|
125
166
|
'never report them the same way. streetNumber and postcode are STRINGS (44A, 12-14, 0181),',
|
|
126
|
-
'house numbers are rare outside well-mapped areas
|
|
167
|
+
'house numbers are rare outside well-mapped areas. Street geometry comes back only when',
|
|
168
|
+
'streetGeometry is set — leave it off unless something will draw the line.',
|
|
127
169
|
'',
|
|
128
170
|
'One call is one billed lookup however many layers, sets or grid codes it touches, and a',
|
|
129
171
|
'call that matches nothing still bills.',
|
|
@@ -153,15 +195,27 @@ export function createServer() {
|
|
|
153
195
|
])
|
|
154
196
|
.optional()
|
|
155
197
|
.describe('Plus Code length. 9 is not a valid length. 10 is about 14 m.'),
|
|
198
|
+
streetGeometry: z
|
|
199
|
+
.enum(['polyline6', 'geojson'])
|
|
200
|
+
.optional()
|
|
201
|
+
.describe('Give each street answer the line of the street it names, trimmed to about 250 m either ' +
|
|
202
|
+
'side of the point. Implies the street layer. Off by default, and leave it off unless ' +
|
|
203
|
+
'something will draw it: a line is hundreds of characters nobody reads.'),
|
|
156
204
|
},
|
|
157
205
|
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
158
|
-
}, async ({ lat, lng, base, sets, encode, h3res, pluslen }) => {
|
|
206
|
+
}, async ({ lat, lng, base, sets, encode, h3res, pluslen, streetGeometry }) => {
|
|
159
207
|
try {
|
|
208
|
+
// The API refuses streetgeom without the street layer. Asking for the line
|
|
209
|
+
// of the street means asking for the street, so add it rather than fail.
|
|
210
|
+
const layers = streetGeometry && !(base ?? []).includes('street')
|
|
211
|
+
? [...(base ?? ['country', 'region', 'municipal']), 'street']
|
|
212
|
+
: base;
|
|
160
213
|
const result = await request('/location/lookup', {
|
|
161
214
|
query: {
|
|
162
215
|
lat: String(lat),
|
|
163
216
|
lng: String(lng),
|
|
164
|
-
base:
|
|
217
|
+
base: layers?.join(','),
|
|
218
|
+
streetgeom: streetGeometry,
|
|
165
219
|
set: sets?.join(','),
|
|
166
220
|
encode: encode?.join(','),
|
|
167
221
|
h3res: h3res === undefined ? undefined : String(h3res),
|
|
@@ -177,6 +231,110 @@ export function createServer() {
|
|
|
177
231
|
return fail(error);
|
|
178
232
|
}
|
|
179
233
|
});
|
|
234
|
+
// ── Geocoding ─────────────────────────────────────────────────────────────
|
|
235
|
+
server.registerTool('geocode_address', {
|
|
236
|
+
title: 'Geocode an address to a coordinate (South Africa)',
|
|
237
|
+
description: [
|
|
238
|
+
'Turn ONE address into a point, with an honest account of how much of it was found. Built',
|
|
239
|
+
'for deliveries. South Africa today; more countries as their data loads. 1 lookup per',
|
|
240
|
+
'address, found or not.',
|
|
241
|
+
'',
|
|
242
|
+
'Send either q (one line) or address (housenumber, street, suburb, city, postcode, unit) —',
|
|
243
|
+
'never both. If the address is already split, send it split: it matches better.',
|
|
244
|
+
'',
|
|
245
|
+
'READ precision BEFORE using the point. "address" means the house was found;',
|
|
246
|
+
'"interpolated" means it was estimated between the numbers either side; "intersection"',
|
|
247
|
+
'means a street corner ("Cnr Main Rd and Belmont Rd", "Bree & Strand Streets"), at the',
|
|
248
|
+
'point where the two meet, with the second street in matched.crossStreet; "street" means',
|
|
249
|
+
'the right street but NOT the house; "locality" means only the suburb or town. NEVER present',
|
|
250
|
+
'a street- or locality-level point as a door: a driver sent there will be at the wrong',
|
|
251
|
+
'house. In South Africa most answers are street-level, because OpenStreetMap has house',
|
|
252
|
+
'numbers on about 13% of street names — that is the data being honest, not a failure.',
|
|
253
|
+
'',
|
|
254
|
+
'What to do with an answer — the result line says which applies:',
|
|
255
|
+
'- address, interpolated or intersection, not ambiguous, confidence 0.5 or more: dispatch.',
|
|
256
|
+
'- street: ask the recipient for a pin or a landmark.',
|
|
257
|
+
'- ambiguous, or locality: ask the customer before dispatching.',
|
|
258
|
+
'confidence ranks answers; it is NOT a probability. ambiguous means a same-named street',
|
|
259
|
+
'elsewhere scored about as well, or the street was a near-miss spelling with no house',
|
|
260
|
+
'number to confirm it. result null means nothing trustworthy was found, and that still',
|
|
261
|
+
'costs the lookup.',
|
|
262
|
+
'',
|
|
263
|
+
'Some addresses name something that cannot be placed: an erf, stand, plot or farm portion',
|
|
264
|
+
'(land parcels — there is no cadastre), a township stand, a PO box or private bag. Those',
|
|
265
|
+
'parts come back in unmatched and the answer is the place named, at locality: ask the',
|
|
266
|
+
'customer for a street address.',
|
|
267
|
+
'',
|
|
268
|
+
'country is a hard filter; region (ZA-WC, or "Western Cape") only ranks streets inside it',
|
|
269
|
+
'first, so a wrong province does not lose the address. An uncovered country is refused,',
|
|
270
|
+
'unbilled, with the list of covered countries in the message — that message is the live',
|
|
271
|
+
'coverage list; there is no other. sets and base answer "which delivery zone is it in" in',
|
|
272
|
+
'the same call, at no extra cost.',
|
|
273
|
+
'',
|
|
274
|
+
'One address per call, deliberately. For a delivery list, call this once per row so the',
|
|
275
|
+
'user sees what is being spent; programs with thousands of rows should use the API’s',
|
|
276
|
+
'POST /geocode/batch directly. Not for: searching for a business or landmark by name,',
|
|
277
|
+
'or a coordinate to an address (that is lookup_location with the street layer).',
|
|
278
|
+
].join('\n'),
|
|
279
|
+
inputSchema: {
|
|
280
|
+
q: z.string().max(300).optional().describe('The whole address on one line, e.g. "25 Adderley Street, Cape Town".'),
|
|
281
|
+
address: z
|
|
282
|
+
.object({
|
|
283
|
+
housenumber: z.string().max(120).optional(),
|
|
284
|
+
street: z.string().max(120).optional(),
|
|
285
|
+
suburb: z.string().max(120).optional(),
|
|
286
|
+
city: z.string().max(120).optional(),
|
|
287
|
+
postcode: z.string().max(120).optional(),
|
|
288
|
+
unit: z.string().max(120).optional(),
|
|
289
|
+
})
|
|
290
|
+
.optional()
|
|
291
|
+
.describe('The address already split into parts. Needs at least a street. Use instead of q.'),
|
|
292
|
+
country: z
|
|
293
|
+
.string()
|
|
294
|
+
.length(2)
|
|
295
|
+
.optional()
|
|
296
|
+
.describe('ISO 3166-1 alpha-2, e.g. "ZA". A hard filter: only that country is searched.'),
|
|
297
|
+
region: z
|
|
298
|
+
.string()
|
|
299
|
+
.max(120)
|
|
300
|
+
.optional()
|
|
301
|
+
.describe('ISO 3166-2 ("ZA-WC") or a name ("Western Cape"). A preference, not a filter.'),
|
|
302
|
+
sets: z
|
|
303
|
+
.array(z.string().max(64))
|
|
304
|
+
.optional()
|
|
305
|
+
.describe('Boundary sets on this account to match at the found point, e.g. delivery zones.'),
|
|
306
|
+
base: z
|
|
307
|
+
.array(z.enum(['country', 'region', 'municipal']))
|
|
308
|
+
.optional()
|
|
309
|
+
.describe('Administrative layers to resolve at the found point.'),
|
|
310
|
+
streetGeometry: z
|
|
311
|
+
.enum(['polyline6', 'geojson'])
|
|
312
|
+
.optional()
|
|
313
|
+
.describe('The matched street’s line, trimmed to about 250 m. Only if something will draw it.'),
|
|
314
|
+
},
|
|
315
|
+
annotations: { readOnlyHint: true, openWorldHint: true },
|
|
316
|
+
}, async ({ q, address, country, region, sets, base, streetGeometry }) => {
|
|
317
|
+
// Refuse locally rather than spend a request on a shape the API refuses.
|
|
318
|
+
if ((q === undefined) === (address === undefined)) {
|
|
319
|
+
return {
|
|
320
|
+
content: [{ type: 'text', text: 'Send either q (one line) or address (split into parts) — exactly one of them.' }],
|
|
321
|
+
isError: true,
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
try {
|
|
325
|
+
const answer = await request('/geocode', {
|
|
326
|
+
method: 'POST',
|
|
327
|
+
body: { q, address, country, region, set: sets, base, streetgeom: streetGeometry },
|
|
328
|
+
});
|
|
329
|
+
const problems = answer.errors.length > 0
|
|
330
|
+
? `\n\nPartial problems (the geocode still answered):\n${answer.errors.map(e => `- [${e.type}] ${e.message}`).join('\n')}`
|
|
331
|
+
: '';
|
|
332
|
+
return ok(`${summariseGeocode(answer.result)}\n\n${json(answer)}${problems}`);
|
|
333
|
+
}
|
|
334
|
+
catch (error) {
|
|
335
|
+
return fail(error);
|
|
336
|
+
}
|
|
337
|
+
});
|
|
180
338
|
// ── Boundary sets ──────────────────────────────────────────────────────────
|
|
181
339
|
server.registerTool('list_boundary_sets', {
|
|
182
340
|
title: 'List the boundary sets on this account',
|
|
@@ -302,6 +460,83 @@ export function createServer() {
|
|
|
302
460
|
return fail(error);
|
|
303
461
|
}
|
|
304
462
|
});
|
|
463
|
+
server.registerTool('update_boundary', {
|
|
464
|
+
title: 'Move or reshape a boundary, keeping its name and properties',
|
|
465
|
+
description: [
|
|
466
|
+
'Replace the shape of ONE existing boundary. Its id, name, properties and set stay as they',
|
|
467
|
+
'are, so every lookup that matches it keeps returning the same properties.',
|
|
468
|
+
'',
|
|
469
|
+
'Use this to fix or move a zone. Do NOT delete it and add it again: that gives it a new id',
|
|
470
|
+
'and loses the properties unless they are re-sent.',
|
|
471
|
+
'',
|
|
472
|
+
'Name the boundary by set and name; this finds its id. If a set holds two boundaries with',
|
|
473
|
+
'that name, the answer lists their ids and asks for one. The new shape gets the same',
|
|
474
|
+
'checks as add_boundary, including the plan’s points-per-boundary cap (refused, unbilled).',
|
|
475
|
+
'Only boundaries on this account can be changed.',
|
|
476
|
+
].join('\n'),
|
|
477
|
+
inputSchema: {
|
|
478
|
+
set: z.string().max(64).describe('The set the boundary is in.'),
|
|
479
|
+
name: z.string().max(100).optional().describe('The boundary’s name. Use this or id.'),
|
|
480
|
+
id: z
|
|
481
|
+
.string()
|
|
482
|
+
.regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i, 'A boundary id is a UUID; give the name instead.')
|
|
483
|
+
.optional()
|
|
484
|
+
.describe('The boundary’s id (a UUID), when it is known. Use this or name.'),
|
|
485
|
+
geometry: z
|
|
486
|
+
.object({
|
|
487
|
+
type: z.literal('Polygon'),
|
|
488
|
+
coordinates: z
|
|
489
|
+
.array(z.array(z.array(z.number()).min(2).max(3)).min(4))
|
|
490
|
+
.min(1)
|
|
491
|
+
.describe('Rings of [longitude, latitude]; the first is the outline, any others holes. Each ring closed.'),
|
|
492
|
+
})
|
|
493
|
+
.describe('The new shape: a GeoJSON Polygon.'),
|
|
494
|
+
},
|
|
495
|
+
// destructiveHint: the old shape is gone. idempotentHint: sending the same
|
|
496
|
+
// shape twice leaves the same boundary.
|
|
497
|
+
annotations: { readOnlyHint: false, destructiveHint: true, idempotentHint: true, openWorldHint: true },
|
|
498
|
+
}, async ({ set, name, id, geometry }) => {
|
|
499
|
+
if (!id && !name) {
|
|
500
|
+
return { content: [{ type: 'text', text: 'Name the boundary (name) or give its id.' }], isError: true };
|
|
501
|
+
}
|
|
502
|
+
try {
|
|
503
|
+
let target = id;
|
|
504
|
+
if (!target) {
|
|
505
|
+
const view = await request('/boundaries/view', { query: { set } });
|
|
506
|
+
const matches = view.boundaries.filter(b => b.name === name);
|
|
507
|
+
if (matches.length === 0) {
|
|
508
|
+
const names = view.boundaries.map(b => b.name);
|
|
509
|
+
return {
|
|
510
|
+
content: [{
|
|
511
|
+
type: 'text',
|
|
512
|
+
text: `No boundary named "${name}" in set "${set}".` +
|
|
513
|
+
(names.length > 0 ? ` Its boundaries are: ${names.join(', ')}.` : ' The set is empty.'),
|
|
514
|
+
}],
|
|
515
|
+
isError: true,
|
|
516
|
+
};
|
|
517
|
+
}
|
|
518
|
+
if (matches.length > 1) {
|
|
519
|
+
return {
|
|
520
|
+
content: [{
|
|
521
|
+
type: 'text',
|
|
522
|
+
text: `Set "${set}" has ${matches.length} boundaries named "${name}". Call again with one ` +
|
|
523
|
+
`of these ids: ${matches.map(b => `${b.id} (${b.pointCount ?? '?'} points)`).join(', ')}.`,
|
|
524
|
+
}],
|
|
525
|
+
isError: true,
|
|
526
|
+
};
|
|
527
|
+
}
|
|
528
|
+
target = matches[0].id;
|
|
529
|
+
}
|
|
530
|
+
const updated = await request(`/boundaries/${encodeURIComponent(target)}`, {
|
|
531
|
+
method: 'PATCH',
|
|
532
|
+
body: { geometry },
|
|
533
|
+
});
|
|
534
|
+
return ok(`Reshaped "${updated.name}" in set "${updated.set ?? set}"; its properties are unchanged.\n\n${json({ ...updated, geometry: undefined })}`);
|
|
535
|
+
}
|
|
536
|
+
catch (error) {
|
|
537
|
+
return fail(error);
|
|
538
|
+
}
|
|
539
|
+
});
|
|
305
540
|
// ── Directions ─────────────────────────────────────────────────────────────
|
|
306
541
|
server.registerTool('get_route', {
|
|
307
542
|
title: 'Route between coordinates, optionally avoiding your own zones',
|
|
@@ -309,8 +544,9 @@ export function createServer() {
|
|
|
309
544
|
'A driving, cycling, walking or truck route from the first location to the last, via any',
|
|
310
545
|
'in between, with distance, duration and turn-by-turn steps.',
|
|
311
546
|
'',
|
|
312
|
-
'COST: a route is 10 LOOKUPS, not one
|
|
313
|
-
'is
|
|
547
|
+
'COST: a route is 10 LOOKUPS on the standard plans, not one (a custom plan may charge less;',
|
|
548
|
+
'X-Lookups-Remaining is always the truth). Everything it returns is included in that, so do',
|
|
549
|
+
'not call it in a loop to compare options without saying so.',
|
|
314
550
|
'',
|
|
315
551
|
'Durations are FREE-FLOW: the road network at its own speed limits, with NO live or',
|
|
316
552
|
'historical traffic. Never present one as an arrival time in traffic — for that, say a',
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "atlasfetch-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"mcpName": "xyz.atlasfetch/atlasfetch",
|
|
5
|
-
"description": "MCP server for AtlasFetch — reverse geocode a coordinate to its country, region and municipality (ISO 3166 codes), the nearest street and house number, match
|
|
5
|
+
"description": "MCP server for AtlasFetch — reverse geocode a coordinate to its country, region and municipality (ISO 3166 codes), the nearest street and house number, geocode South African addresses, match against your own geofences, and route around them.",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"mcp",
|
|
8
8
|
"modelcontextprotocol",
|
package/server.json
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "xyz.atlasfetch/atlasfetch",
|
|
4
4
|
"title": "AtlasFetch",
|
|
5
|
-
"description": "
|
|
6
|
-
"version": "0.
|
|
5
|
+
"description": "Coordinates to places and streets, ZA addresses to points, and routes around your own geofences.",
|
|
6
|
+
"version": "0.3.1",
|
|
7
7
|
"websiteUrl": "https://atlasfetch.xyz",
|
|
8
8
|
"repository": {
|
|
9
9
|
"url": "https://github.com/atlasfetch-dev/atlasfetch-mcp",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
{
|
|
14
14
|
"registryType": "npm",
|
|
15
15
|
"identifier": "atlasfetch-mcp",
|
|
16
|
-
"version": "0.
|
|
16
|
+
"version": "0.3.1",
|
|
17
17
|
"transport": {
|
|
18
18
|
"type": "stdio"
|
|
19
19
|
},
|