@cyanheads/openstreetmap-mcp-server 0.2.2 → 0.2.4

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 (30) hide show
  1. package/CLAUDE.md +2 -2
  2. package/README.md +1 -1
  3. package/dist/mcp-server/tools/definitions/openstreetmap-geocode.tool.d.ts +3 -1
  4. package/dist/mcp-server/tools/definitions/openstreetmap-geocode.tool.d.ts.map +1 -1
  5. package/dist/mcp-server/tools/definitions/openstreetmap-geocode.tool.js +13 -0
  6. package/dist/mcp-server/tools/definitions/openstreetmap-geocode.tool.js.map +1 -1
  7. package/dist/mcp-server/tools/definitions/openstreetmap-lookup.tool.d.ts +1 -1
  8. package/dist/mcp-server/tools/definitions/openstreetmap-lookup.tool.d.ts.map +1 -1
  9. package/dist/mcp-server/tools/definitions/openstreetmap-query-bbox.tool.d.ts +13 -5
  10. package/dist/mcp-server/tools/definitions/openstreetmap-query-bbox.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/openstreetmap-query-bbox.tool.js +56 -14
  12. package/dist/mcp-server/tools/definitions/openstreetmap-query-bbox.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/openstreetmap-query-nearby.tool.d.ts +13 -5
  14. package/dist/mcp-server/tools/definitions/openstreetmap-query-nearby.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/openstreetmap-query-nearby.tool.js +56 -14
  16. package/dist/mcp-server/tools/definitions/openstreetmap-query-nearby.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/openstreetmap-query-raw.tool.d.ts +5 -2
  18. package/dist/mcp-server/tools/definitions/openstreetmap-query-raw.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/openstreetmap-query-raw.tool.js +39 -3
  20. package/dist/mcp-server/tools/definitions/openstreetmap-query-raw.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/openstreetmap-reverse.tool.d.ts +1 -1
  22. package/dist/mcp-server/tools/definitions/openstreetmap-reverse.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/openstreetmap-tag-input.js +1 -1
  24. package/dist/mcp-server/tools/definitions/openstreetmap-tag-input.js.map +1 -1
  25. package/dist/services/overpass/overpass-service.d.ts +11 -0
  26. package/dist/services/overpass/overpass-service.d.ts.map +1 -1
  27. package/dist/services/overpass/overpass-service.js +30 -17
  28. package/dist/services/overpass/overpass-service.js.map +1 -1
  29. package/package.json +4 -3
  30. package/server.json +5 -5
package/CLAUDE.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** @cyanheads/openstreetmap-mcp-server
4
- **Version:** 0.2.2
5
- **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.13`
4
+ **Version:** 0.2.4
5
+ **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9.16`
6
6
  **Engines:** Bun ≥1.3.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
8
8
  **Zod:** ^4.4.3
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
 
10
10
 
11
11
 
12
- [![Version](https://img.shields.io/badge/Version-0.2.2-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/openstreetmap-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/openstreetmap-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/openstreetmap-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
12
+ [![Version](https://img.shields.io/badge/Version-0.2.4-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/openstreetmap-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^1.29.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/openstreetmap-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/openstreetmap-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^6.0.3-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.3.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
13
13
 
14
14
  </div>
15
15
 
@@ -55,5 +55,7 @@ export declare const openstreetmapGeocode: import("@cyanheads/mcp-ts-core").Tool
55
55
  readonly code: JsonRpcErrorCode.ValidationError;
56
56
  readonly when: "Both query and structured fields are provided, or neither is provided.";
57
57
  readonly recovery: "Provide either the query parameter (free-form) or structured address fields (street, city, etc.), not both.";
58
- }]>;
58
+ }], {
59
+ readonly effectiveQuery: z.ZodString;
60
+ }>;
59
61
  //# sourceMappingURL=openstreetmap-geocode.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-geocode.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-geocode.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwP/B,CAAC"}
1
+ {"version":3,"file":"openstreetmap-geocode.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-geocode.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyQ/B,CAAC"}
@@ -112,6 +112,13 @@ export const openstreetmapGeocode = tool('openstreetmap_geocode', {
112
112
  .string()
113
113
  .describe('Required data attribution: Data © OpenStreetMap contributors, ODbL 1.0.'),
114
114
  }),
115
+ // Agent-facing context: the effective query sent to Nominatim.
116
+ // Reaches both structuredContent and content[] without a format() entry.
117
+ enrichment: {
118
+ effectiveQuery: z
119
+ .string()
120
+ .describe('The effective query sent to Nominatim — the free-form query string, or a reconstructed string from the provided structured address fields.'),
121
+ },
115
122
  errors: [
116
123
  {
117
124
  reason: 'no_results',
@@ -160,6 +167,12 @@ export const openstreetmapGeocode = tool('openstreetmap_geocode', {
160
167
  throw ctx.fail('no_results', `No places found for "${input.query ?? [input.city, input.state, input.country].filter(Boolean).join(', ')}"`, { ...ctx.recoveryFor('no_results') });
161
168
  }
162
169
  ctx.log.info('Geocode results', { count: results.length });
170
+ const effectiveQuery = input.query
171
+ ? input.query
172
+ : [input.street, input.city, input.county, input.state, input.country, input.postalcode]
173
+ .filter(Boolean)
174
+ .join(', ');
175
+ ctx.enrich({ effectiveQuery });
163
176
  return {
164
177
  results: results.map((r) => ({
165
178
  place_id: r.place_id,
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-geocode.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-geocode.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openstreetmap-geocode.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-geocode.tool.ts"],"names":[],"mappings":"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"}
@@ -35,5 +35,5 @@ export declare const openstreetmapLookup: import("@cyanheads/mcp-ts-core").ToolD
35
35
  readonly code: JsonRpcErrorCode.ValidationError;
36
36
  readonly when: "An OSM ID is missing the N/W/R prefix or is otherwise malformed.";
37
37
  readonly recovery: "Prefix each ID with N (node), W (way), or R (relation), e.g., \"N12345\" not \"12345\".";
38
- }]>;
38
+ }], undefined>;
39
39
  //# sourceMappingURL=openstreetmap-lookup.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-lookup.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-lookup.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AASjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuJ9B,CAAC"}
1
+ {"version":3,"file":"openstreetmap-lookup.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-lookup.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AASjE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAuJ9B,CAAC"}
@@ -32,26 +32,34 @@ export declare const openstreetmapQueryBbox: import("@cyanheads/mcp-ts-core").To
32
32
  name: z.ZodOptional<z.ZodString>;
33
33
  tags: z.ZodRecord<z.ZodString, z.ZodString>;
34
34
  }, z.core.$strip>>;
35
- total_found: z.ZodNumber;
36
- truncated: z.ZodBoolean;
37
35
  data_timestamp: z.ZodString;
38
36
  attribution: z.ZodString;
39
37
  }, z.core.$strip>, readonly [{
40
38
  readonly reason: "invalid_tag";
41
39
  readonly code: JsonRpcErrorCode.ValidationError;
42
40
  readonly when: "Both amenity and tag_key/tag_value are provided, or neither is provided.";
43
- readonly recovery: "Provide either amenity (e.g., \"hospital\") or tag_key + tag_value (e.g., tag_key=\"leisure\", tag_value=\"park\"), but not both and not neither.";
41
+ readonly recovery: "Provide either amenity (e.g., \"hospital\") or both tag_key and tag_value (e.g., tag_key=\"leisure\", tag_value=\"park\"). tag_key without tag_value is not valid.";
44
42
  }, {
45
43
  readonly reason: "query_timeout";
46
44
  readonly code: JsonRpcErrorCode.Timeout;
47
45
  readonly when: "The Overpass query exceeded the timeout.";
48
- readonly retryable: true;
46
+ readonly retryable: false;
49
47
  readonly recovery: "Reduce the bounding box area, add more specific tag filters, or increase timeout_seconds and retry.";
48
+ }, {
49
+ readonly reason: "result_too_large";
50
+ readonly code: JsonRpcErrorCode.ServiceUnavailable;
51
+ readonly when: "Overpass ran out of memory — the result set exceeds the server memory limit.";
52
+ readonly recovery: "Narrow the query: reduce the bounding box area, add more specific tag filters, or limit element_types.";
50
53
  }, {
51
54
  readonly reason: "rate_limited";
52
55
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
53
56
  readonly when: "Overpass returned HTTP 429 — all 4 concurrent query slots are occupied.";
54
57
  readonly retryable: true;
55
58
  readonly recovery: "Wait a few seconds and retry. Reduce concurrent calls or switch to a private Overpass instance via OSM_OVERPASS_BASE_URL.";
56
- }]>;
59
+ }], {
60
+ readonly effectiveTag: z.ZodString;
61
+ readonly totalFound: z.ZodNumber;
62
+ readonly truncated: z.ZodBoolean;
63
+ readonly notice: z.ZodOptional<z.ZodString>;
64
+ }>;
57
65
  //# sourceMappingURL=openstreetmap-query-bbox.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-query-bbox.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-bbox.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+LjC,CAAC"}
1
+ {"version":3,"file":"openstreetmap-query-bbox.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-bbox.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAM3E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmPjC,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * @module mcp-server/tools/definitions/openstreetmap-query-bbox.tool
4
4
  */
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
- import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
6
+ import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
7
7
  import { getOverpassService } from '../../../services/overpass/overpass-service.js';
8
8
  import { resolveTagInput } from './openstreetmap-tag-input.js';
9
9
  const ATTRIBUTION = 'Data © OpenStreetMap contributors, ODbL 1.0';
@@ -76,31 +76,51 @@ export const openstreetmapQueryBbox = tool('openstreetmap_query_bbox', {
76
76
  })
77
77
  .describe('A single matching OSM feature.'))
78
78
  .describe('Matching OSM features within the bounding box, up to the limit.'),
79
- total_found: z
80
- .number()
81
- .describe('Total features returned by Overpass before limit truncation.'),
82
- truncated: z
83
- .boolean()
84
- .describe('True if results were cut at the limit. Reduce bbox area or add more specific tags to narrow the result set.'),
85
79
  data_timestamp: z.string().describe('OSM data freshness timestamp from the Overpass response.'),
86
80
  attribution: z
87
81
  .string()
88
82
  .describe('Required data attribution: Data © OpenStreetMap contributors, ODbL 1.0.'),
89
83
  }),
84
+ // Agent-facing context: resolved tag filter, result-set counts, and empty-result guidance.
85
+ // Reaches both structuredContent and content[] without a format() entry.
86
+ enrichment: {
87
+ effectiveTag: z
88
+ .string()
89
+ .describe('The OSM tag filter applied (key=value, e.g. "amenity=cafe" or "leisure=park").'),
90
+ totalFound: z.number().describe('Total features returned by Overpass before limit truncation.'),
91
+ truncated: z
92
+ .boolean()
93
+ .describe('True if results were cut at the limit. Reduce bbox area or add more specific tags to narrow the result set.'),
94
+ notice: z
95
+ .string()
96
+ .optional()
97
+ .describe('Guidance when no features were found — e.g., try a different bounding box or tag. Absent when results were returned.'),
98
+ },
99
+ enrichmentTrailer: {
100
+ effectiveTag: { label: 'Tag Filter' },
101
+ totalFound: { label: 'Total Found' },
102
+ truncated: { label: 'Results Truncated' },
103
+ },
90
104
  errors: [
91
105
  {
92
106
  reason: 'invalid_tag',
93
107
  code: JsonRpcErrorCode.ValidationError,
94
108
  when: 'Both amenity and tag_key/tag_value are provided, or neither is provided.',
95
- recovery: 'Provide either amenity (e.g., "hospital") or tag_key + tag_value (e.g., tag_key="leisure", tag_value="park"), but not both and not neither.',
109
+ recovery: 'Provide either amenity (e.g., "hospital") or both tag_key and tag_value (e.g., tag_key="leisure", tag_value="park"). tag_key without tag_value is not valid.',
96
110
  },
97
111
  {
98
112
  reason: 'query_timeout',
99
113
  code: JsonRpcErrorCode.Timeout,
100
114
  when: 'The Overpass query exceeded the timeout.',
101
- retryable: true,
115
+ retryable: false,
102
116
  recovery: 'Reduce the bounding box area, add more specific tag filters, or increase timeout_seconds and retry.',
103
117
  },
118
+ {
119
+ reason: 'result_too_large',
120
+ code: JsonRpcErrorCode.ServiceUnavailable,
121
+ when: 'Overpass ran out of memory — the result set exceeds the server memory limit.',
122
+ recovery: 'Narrow the query: reduce the bounding box area, add more specific tag filters, or limit element_types.',
123
+ },
104
124
  {
105
125
  reason: 'rate_limited',
106
126
  code: JsonRpcErrorCode.ServiceUnavailable,
@@ -114,7 +134,7 @@ export const openstreetmapQueryBbox = tool('openstreetmap_query_bbox', {
114
134
  if ('error' in resolved) {
115
135
  throw ctx.fail('invalid_tag', resolved.error === 'both'
116
136
  ? 'Cannot combine amenity with tag_key/tag_value.'
117
- : 'Provide either amenity or tag_key + tag_value.', { ...ctx.recoveryFor('invalid_tag') });
137
+ : 'Provide either amenity or both tag_key and tag_value (both are required).', { ...ctx.recoveryFor('invalid_tag') });
118
138
  }
119
139
  const { tagKey, tagValue } = resolved;
120
140
  const service = getOverpassService();
@@ -128,7 +148,22 @@ export const openstreetmapQueryBbox = tool('openstreetmap_query_bbox', {
128
148
  elementTypes: input.element_types,
129
149
  timeoutSeconds: input.timeout_seconds,
130
150
  });
131
- const response = await service.query(ql, ctx);
151
+ const response = await service.query(ql, ctx).catch((err) => {
152
+ if (err instanceof McpError) {
153
+ const data = err.data;
154
+ const reason = data?.reason;
155
+ // fetchWithTimeout throws RateLimited (no reason) for HTTP 429 — remap to rate_limited
156
+ if (!reason && data?.statusCode === 429) {
157
+ throw ctx.fail('rate_limited', err.message, { ...ctx.recoveryFor('rate_limited') });
158
+ }
159
+ if (reason === 'query_timeout' ||
160
+ reason === 'result_too_large' ||
161
+ reason === 'rate_limited') {
162
+ throw ctx.fail(reason, err.message, { ...ctx.recoveryFor(reason) });
163
+ }
164
+ }
165
+ throw err;
166
+ });
132
167
  const allPois = service.normalizeElements(response.elements);
133
168
  const limited = allPois.slice(0, input.limit);
134
169
  const dataTimestamp = response.osm3s?.timestamp_osm_base ?? new Date().toISOString();
@@ -136,17 +171,24 @@ export const openstreetmapQueryBbox = tool('openstreetmap_query_bbox', {
136
171
  total: allPois.length,
137
172
  returned: limited.length,
138
173
  });
174
+ ctx.enrich({
175
+ effectiveTag: `${tagKey}=${tagValue}`,
176
+ totalFound: allPois.length,
177
+ truncated: allPois.length > input.limit,
178
+ });
179
+ if (limited.length === 0) {
180
+ ctx.enrich.notice(`No ${tagKey}=${tagValue} features found in the specified bounding box. Try a larger bbox, a different tag, or verify the coordinates.`);
181
+ }
139
182
  return {
140
183
  elements: limited,
141
- total_found: allPois.length,
142
- truncated: allPois.length > input.limit,
143
184
  data_timestamp: dataTimestamp,
144
185
  attribution: ATTRIBUTION,
145
186
  };
146
187
  },
147
188
  format: (result) => {
189
+ const count = result.elements.length;
148
190
  const lines = [
149
- `**${result.total_found} feature${result.total_found === 1 ? '' : 's'} found**${result.truncated ? ` (showing first ${result.elements.length} — results truncated)` : ''}`,
191
+ `**${count} feature${count === 1 ? '' : 's'} returned**`,
150
192
  `**Data as of:** ${result.data_timestamp}`,
151
193
  '',
152
194
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-query-bbox.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-bbox.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openstreetmap-query-bbox.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-bbox.tool.ts"],"names":[],"mappings":"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"}
@@ -32,26 +32,34 @@ export declare const openstreetmapQueryNearby: import("@cyanheads/mcp-ts-core").
32
32
  name: z.ZodOptional<z.ZodString>;
33
33
  tags: z.ZodRecord<z.ZodString, z.ZodString>;
34
34
  }, z.core.$strip>>;
35
- total_found: z.ZodNumber;
36
- truncated: z.ZodBoolean;
37
35
  data_timestamp: z.ZodString;
38
36
  attribution: z.ZodString;
39
37
  }, z.core.$strip>, readonly [{
40
38
  readonly reason: "invalid_tag";
41
39
  readonly code: JsonRpcErrorCode.ValidationError;
42
40
  readonly when: "Both amenity and tag_key/tag_value are provided, or neither is provided.";
43
- readonly recovery: "Provide either amenity (e.g., \"hospital\") or tag_key + tag_value (e.g., tag_key=\"leisure\", tag_value=\"park\"), but not both and not neither.";
41
+ readonly recovery: "Provide either amenity (e.g., \"hospital\") or both tag_key and tag_value (e.g., tag_key=\"leisure\", tag_value=\"park\"). tag_key without tag_value is not valid.";
44
42
  }, {
45
43
  readonly reason: "query_timeout";
46
44
  readonly code: JsonRpcErrorCode.Timeout;
47
45
  readonly when: "The Overpass query exceeded the timeout.";
48
- readonly retryable: true;
46
+ readonly retryable: false;
49
47
  readonly recovery: "Reduce radius_meters, add more specific tag filters, or increase timeout_seconds and retry.";
48
+ }, {
49
+ readonly reason: "result_too_large";
50
+ readonly code: JsonRpcErrorCode.ServiceUnavailable;
51
+ readonly when: "Overpass ran out of memory — the result set exceeds the server memory limit.";
52
+ readonly recovery: "Narrow the query: reduce radius_meters, add more specific tag filters, or limit element_types.";
50
53
  }, {
51
54
  readonly reason: "rate_limited";
52
55
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
53
56
  readonly when: "Overpass returned HTTP 429 — all 4 concurrent query slots are occupied.";
54
57
  readonly retryable: true;
55
58
  readonly recovery: "Wait a few seconds and retry. Reduce concurrent calls or switch to a private Overpass instance via OSM_OVERPASS_BASE_URL.";
56
- }]>;
59
+ }], {
60
+ readonly effectiveTag: z.ZodString;
61
+ readonly totalFound: z.ZodNumber;
62
+ readonly truncated: z.ZodBoolean;
63
+ readonly notice: z.ZodOptional<z.ZodString>;
64
+ }>;
57
65
  //# sourceMappingURL=openstreetmap-query-nearby.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-query-nearby.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-nearby.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6NnC,CAAC"}
1
+ {"version":3,"file":"openstreetmap-query-nearby.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-nearby.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAM3E,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiRnC,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * @module mcp-server/tools/definitions/openstreetmap-query-nearby.tool
4
4
  */
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
- import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
6
+ import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
7
7
  import { getOverpassService, haversineMeters } from '../../../services/overpass/overpass-service.js';
8
8
  import { resolveTagInput } from './openstreetmap-tag-input.js';
9
9
  const ATTRIBUTION = 'Data © OpenStreetMap contributors, ODbL 1.0';
@@ -85,31 +85,51 @@ export const openstreetmapQueryNearby = tool('openstreetmap_query_nearby', {
85
85
  })
86
86
  .describe('A single matching OSM feature.'))
87
87
  .describe('Matching OSM features, up to the limit.'),
88
- total_found: z
89
- .number()
90
- .describe('Total features returned by Overpass before limit truncation.'),
91
- truncated: z
92
- .boolean()
93
- .describe('True if results were cut at the limit. Reduce radius or add more specific tags to narrow the result set.'),
94
88
  data_timestamp: z.string().describe('OSM data freshness timestamp from the Overpass response.'),
95
89
  attribution: z
96
90
  .string()
97
91
  .describe('Required data attribution: Data © OpenStreetMap contributors, ODbL 1.0.'),
98
92
  }),
93
+ // Agent-facing context: resolved tag filter, result-set counts, and empty-result guidance.
94
+ // Reaches both structuredContent and content[] without a format() entry.
95
+ enrichment: {
96
+ effectiveTag: z
97
+ .string()
98
+ .describe('The OSM tag filter applied (key=value, e.g. "amenity=cafe" or "leisure=park").'),
99
+ totalFound: z.number().describe('Total features returned by Overpass before limit truncation.'),
100
+ truncated: z
101
+ .boolean()
102
+ .describe('True if results were cut at the limit. Reduce radius or add more specific tags to narrow the result set.'),
103
+ notice: z
104
+ .string()
105
+ .optional()
106
+ .describe('Guidance when no features were found — e.g., try a larger radius or different tag. Absent when results were returned.'),
107
+ },
108
+ enrichmentTrailer: {
109
+ effectiveTag: { label: 'Tag Filter' },
110
+ totalFound: { label: 'Total Found' },
111
+ truncated: { label: 'Results Truncated' },
112
+ },
99
113
  errors: [
100
114
  {
101
115
  reason: 'invalid_tag',
102
116
  code: JsonRpcErrorCode.ValidationError,
103
117
  when: 'Both amenity and tag_key/tag_value are provided, or neither is provided.',
104
- recovery: 'Provide either amenity (e.g., "hospital") or tag_key + tag_value (e.g., tag_key="leisure", tag_value="park"), but not both and not neither.',
118
+ recovery: 'Provide either amenity (e.g., "hospital") or both tag_key and tag_value (e.g., tag_key="leisure", tag_value="park"). tag_key without tag_value is not valid.',
105
119
  },
106
120
  {
107
121
  reason: 'query_timeout',
108
122
  code: JsonRpcErrorCode.Timeout,
109
123
  when: 'The Overpass query exceeded the timeout.',
110
- retryable: true,
124
+ retryable: false,
111
125
  recovery: 'Reduce radius_meters, add more specific tag filters, or increase timeout_seconds and retry.',
112
126
  },
127
+ {
128
+ reason: 'result_too_large',
129
+ code: JsonRpcErrorCode.ServiceUnavailable,
130
+ when: 'Overpass ran out of memory — the result set exceeds the server memory limit.',
131
+ recovery: 'Narrow the query: reduce radius_meters, add more specific tag filters, or limit element_types.',
132
+ },
113
133
  {
114
134
  reason: 'rate_limited',
115
135
  code: JsonRpcErrorCode.ServiceUnavailable,
@@ -123,7 +143,7 @@ export const openstreetmapQueryNearby = tool('openstreetmap_query_nearby', {
123
143
  if ('error' in resolved) {
124
144
  throw ctx.fail('invalid_tag', resolved.error === 'both'
125
145
  ? 'Cannot combine amenity with tag_key/tag_value.'
126
- : 'Provide either amenity or tag_key + tag_value.', { ...ctx.recoveryFor('invalid_tag') });
146
+ : 'Provide either amenity or both tag_key and tag_value (both are required).', { ...ctx.recoveryFor('invalid_tag') });
127
147
  }
128
148
  const { tagKey, tagValue } = resolved;
129
149
  const service = getOverpassService();
@@ -136,7 +156,22 @@ export const openstreetmapQueryNearby = tool('openstreetmap_query_nearby', {
136
156
  elementTypes: input.element_types,
137
157
  timeoutSeconds: input.timeout_seconds,
138
158
  });
139
- const response = await service.query(ql, ctx);
159
+ const response = await service.query(ql, ctx).catch((err) => {
160
+ if (err instanceof McpError) {
161
+ const data = err.data;
162
+ const reason = data?.reason;
163
+ // fetchWithTimeout throws RateLimited (no reason) for HTTP 429 — remap to rate_limited
164
+ if (!reason && data?.statusCode === 429) {
165
+ throw ctx.fail('rate_limited', err.message, { ...ctx.recoveryFor('rate_limited') });
166
+ }
167
+ if (reason === 'query_timeout' ||
168
+ reason === 'result_too_large' ||
169
+ reason === 'rate_limited') {
170
+ throw ctx.fail(reason, err.message, { ...ctx.recoveryFor(reason) });
171
+ }
172
+ }
173
+ throw err;
174
+ });
140
175
  const allPois = service.normalizeElements(response.elements);
141
176
  // Attach great-circle distance from the query center, then sort nearest-first
142
177
  // BEFORE truncating so `limit` keeps the closest matches, not the lowest element IDs.
@@ -158,17 +193,24 @@ export const openstreetmapQueryNearby = tool('openstreetmap_query_nearby', {
158
193
  total: allPois.length,
159
194
  returned: limited.length,
160
195
  });
196
+ ctx.enrich({
197
+ effectiveTag: `${tagKey}=${tagValue}`,
198
+ totalFound: allPois.length,
199
+ truncated: allPois.length > input.limit,
200
+ });
201
+ if (limited.length === 0) {
202
+ ctx.enrich.notice(`No ${tagKey}=${tagValue} features found within ${input.radius_meters}m. Try a larger radius_meters, a different tag, or verify the coordinates.`);
203
+ }
161
204
  return {
162
205
  elements: limited,
163
- total_found: allPois.length,
164
- truncated: allPois.length > input.limit,
165
206
  data_timestamp: dataTimestamp,
166
207
  attribution: ATTRIBUTION,
167
208
  };
168
209
  },
169
210
  format: (result) => {
211
+ const count = result.elements.length;
170
212
  const lines = [
171
- `**${result.total_found} feature${result.total_found === 1 ? '' : 's'} found**${result.truncated ? ` (showing first ${result.elements.length} — results truncated)` : ''}`,
213
+ `**${count} feature${count === 1 ? '' : 's'} returned**`,
172
214
  `**Data as of:** ${result.data_timestamp}`,
173
215
  '',
174
216
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-query-nearby.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-nearby.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openstreetmap-query-nearby.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-nearby.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,WAAW,GAAG,6CAA6C,CAAC;AAElE,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC,4BAA4B,EAAE;IACzE,KAAK,EAAE,gCAAgC;IACvC,WAAW,EACT,oFAAoF;QACpF,0DAA0D;QAC1D,6FAA6F;QAC7F,kGAAkG;QAClG,gEAAgE;QAChE,6GAA6G;QAC7G,iGAAiG;QACjG,+GAA+G;IACjH,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAE9E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACtF,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QACzF,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,GAAG,CAAC,KAAK,CAAC;aACV,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,CACP,qHAAqH,CACtH;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,iKAAiK,CAClK;QACH,OAAO,EAAE,CAAC;aACP,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,2IAA2I,CAC5I;QACH,SAAS,EAAE,CAAC;aACT,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,qFAAqF,CACtF;QACH,aAAa,EAAE,CAAC;aACb,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;aAC1C,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACxB,QAAQ,CACP,gKAAgK,CACjK;QACH,KAAK,EAAE,CAAC;aACL,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CACP,kHAAkH,CACnH;QACH,eAAe,EAAE,CAAC;aACf,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,EAAE,CAAC;aACP,OAAO,CAAC,EAAE,CAAC;aACX,QAAQ,CAAC,8EAA8E,CAAC;KAC5F,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC;aACR,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YAC3E,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,CAAC,6DAA6D,CAAC;YAC1E,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,uEAAuE,CAAC;YACpF,GAAG,EAAE,CAAC;iBACH,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wEAAwE,CAAC;YACrF,eAAe,EAAE,CAAC;iBACf,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,gLAAgL,CACjL;YACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACnE,IAAI,EAAE,CAAC;iBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;iBAC9B,QAAQ,CAAC,2DAA2D,CAAC;SACzE,CAAC;aACD,QAAQ,CAAC,gCAAgC,CAAC,CAC9C;aACA,QAAQ,CAAC,yCAAyC,CAAC;QACtD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;QAC/F,WAAW,EAAE,CAAC;aACX,MAAM,EAAE;aACR,QAAQ,CAAC,yEAAyE,CAAC;KACvF,CAAC;IAEF,2FAA2F;IAC3F,yEAAyE;IACzE,UAAU,EAAE;QACV,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,QAAQ,CAAC,gFAAgF,CAAC;QAC7F,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8DAA8D,CAAC;QAC/F,SAAS,EAAE,CAAC;aACT,OAAO,EAAE;aACT,QAAQ,CACP,0GAA0G,CAC3G;QACH,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,uHAAuH,CACxH;KACJ;IAED,iBAAiB,EAAE;QACjB,YAAY,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;QACrC,UAAU,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE;QACpC,SAAS,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE;KAC1C;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,aAAa;YACrB,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,0EAA0E;YAChF,QAAQ,EACN,8JAA8J;SACjK;QACD;YACE,MAAM,EAAE,eAAe;YACvB,IAAI,EAAE,gBAAgB,CAAC,OAAO;YAC9B,IAAI,EAAE,0CAA0C;YAChD,SAAS,EAAE,KAAK;YAChB,QAAQ,EACN,6FAA6F;SAChG;QACD;YACE,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,8EAA8E;YACpF,QAAQ,EACN,gGAAgG;SACnG;QACD;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,yEAAyE;YAC/E,SAAS,EAAE,IAAI;YACf,QAAQ,EACN,2HAA2H;SAC9H;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YACxB,MAAM,GAAG,CAAC,IAAI,CACZ,aAAa,EACb,QAAQ,CAAC,KAAK,KAAK,MAAM;gBACvB,CAAC,CAAC,gDAAgD;gBAClD,CAAC,CAAC,2EAA2E,EAC/E,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,CACtC,CAAC;QACJ,CAAC;QACD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAEtC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAClC,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,MAAM;YACN,QAAQ;YACR,YAAY,EAAE,KAAK,CAAC,aAAa;YACjC,cAAc,EAAE,KAAK,CAAC,eAAe;SACtC,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1D,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2C,CAAC;gBAC7D,MAAM,MAAM,GAAG,IAAI,EAAE,MAA4B,CAAC;gBAClD,uFAAuF;gBACvF,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,UAAU,KAAK,GAAG,EAAE,CAAC;oBACxC,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;gBACtF,CAAC;gBACD,IACE,MAAM,KAAK,eAAe;oBAC1B,MAAM,KAAK,kBAAkB;oBAC7B,MAAM,KAAK,cAAc,EACzB,CAAC;oBACD,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC7D,8EAA8E;QAC9E,sFAAsF;QACtF,MAAM,MAAM,GAAG,OAAO;aACnB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACb,GAAG,GAAG;YACN,eAAe,EACb,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,KAAK,SAAS;gBAC5C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;gBAC/E,CAAC,CAAC,SAAS;SAChB,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACb,MAAM,EAAE,GAAG,CAAC,CAAC,eAAe,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACzD,MAAM,EAAE,GAAG,CAAC,CAAC,eAAe,IAAI,MAAM,CAAC,iBAAiB,CAAC;YACzD,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACL,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAE7C,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,EAAE,kBAAkB,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE;YACtC,KAAK,EAAE,OAAO,CAAC,MAAM;YACrB,QAAQ,EAAE,OAAO,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC;YACT,YAAY,EAAE,GAAG,MAAM,IAAI,QAAQ,EAAE;YACrC,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK;SACxC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,MAAM,CAAC,MAAM,CACf,MAAM,MAAM,IAAI,QAAQ,0BAA0B,KAAK,CAAC,aAAa,4EAA4E,CAClJ,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,OAAO;YACjB,cAAc,EAAE,aAAa;YAC7B,WAAW,EAAE,WAAW;SACzB,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrC,MAAM,KAAK,GAAa;YACtB,KAAK,KAAK,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,aAAa;YACxD,mBAAmB,MAAM,CAAC,cAAc,EAAE;YAC1C,EAAE;SACH,CAAC;QACF,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,SAAS,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1E,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;gBACjD,KAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;YACtD,CAAC;YACD,IAAI,EAAE,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,eAAe,IAAI,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;iBACvC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;iBAC5B,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,IAAI,UAAU;gBAAE,KAAK,CAAC,IAAI,CAAC,aAAa,UAAU,EAAE,CAAC,CAAC;YACtD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;QACtC,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
@@ -21,7 +21,7 @@ export declare const openstreetmapQueryRaw: import("@cyanheads/mcp-ts-core").Too
21
21
  readonly reason: "query_timeout";
22
22
  readonly code: JsonRpcErrorCode.Timeout;
23
23
  readonly when: "The query exceeded its timeout (Overpass runtime error in response body).";
24
- readonly retryable: true;
24
+ readonly retryable: false;
25
25
  readonly recovery: "Add [timeout:N] to the query string with a higher value, or simplify the query (smaller bbox, fewer element types, more specific tags).";
26
26
  }, {
27
27
  readonly reason: "result_too_large";
@@ -34,5 +34,8 @@ export declare const openstreetmapQueryRaw: import("@cyanheads/mcp-ts-core").Too
34
34
  readonly when: "Overpass returned HTTP 429 — all 4 concurrent query slots are occupied.";
35
35
  readonly retryable: true;
36
36
  readonly recovery: "Wait a few seconds and retry. Switch to a private Overpass instance via OSM_OVERPASS_BASE_URL for higher concurrency.";
37
- }]>;
37
+ }], {
38
+ readonly effectiveQuery: z.ZodString;
39
+ readonly notice: z.ZodOptional<z.ZodString>;
40
+ }>;
38
41
  //# sourceMappingURL=openstreetmap-query-raw.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-query-raw.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-raw.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKjE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8IhC,CAAC"}
1
+ {"version":3,"file":"openstreetmap-query-raw.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-raw.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAK3E,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyLhC,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * @module mcp-server/tools/definitions/openstreetmap-query-raw.tool
4
4
  */
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
- import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
6
+ import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
7
7
  import { getOverpassService } from '../../../services/overpass/overpass-service.js';
8
8
  const ATTRIBUTION = 'Data © OpenStreetMap contributors, ODbL 1.0';
9
9
  export const openstreetmapQueryRaw = tool('openstreetmap_query_raw', {
@@ -41,6 +41,17 @@ export const openstreetmapQueryRaw = tool('openstreetmap_query_raw', {
41
41
  .string()
42
42
  .describe('Required data attribution: Data © OpenStreetMap contributors, ODbL 1.0.'),
43
43
  }),
44
+ // Agent-facing context: the effective query sent and empty-result guidance.
45
+ // Reaches both structuredContent and content[] without a format() entry.
46
+ enrichment: {
47
+ effectiveQuery: z
48
+ .string()
49
+ .describe('The Overpass QL string as sent to the API (after any timeout injection).'),
50
+ notice: z
51
+ .string()
52
+ .optional()
53
+ .describe('Guidance when no elements were returned — e.g., check query syntax or broaden the filter. Absent when results were returned.'),
54
+ },
44
55
  errors: [
45
56
  {
46
57
  reason: 'query_error',
@@ -52,7 +63,7 @@ export const openstreetmapQueryRaw = tool('openstreetmap_query_raw', {
52
63
  reason: 'query_timeout',
53
64
  code: JsonRpcErrorCode.Timeout,
54
65
  when: 'The query exceeded its timeout (Overpass runtime error in response body).',
55
- retryable: true,
66
+ retryable: false,
56
67
  recovery: 'Add [timeout:N] to the query string with a higher value, or simplify the query (smaller bbox, fewer element types, more specific tags).',
57
68
  },
58
69
  {
@@ -82,9 +93,34 @@ export const openstreetmapQueryRaw = tool('openstreetmap_query_raw', {
82
93
  }
83
94
  ctx.log.info('Overpass raw query', { queryLength: ql.length });
84
95
  const service = getOverpassService();
85
- const response = await service.query(ql, ctx);
96
+ const response = await service.query(ql, ctx).catch((err) => {
97
+ if (err instanceof McpError) {
98
+ const data = err.data;
99
+ const reason = data?.reason;
100
+ if (!reason) {
101
+ // fetchWithTimeout throws without a reason for HTTP status errors — remap by statusCode
102
+ if (data?.statusCode === 400) {
103
+ throw ctx.fail('query_error', err.message, { ...ctx.recoveryFor('query_error') });
104
+ }
105
+ if (data?.statusCode === 429) {
106
+ throw ctx.fail('rate_limited', err.message, { ...ctx.recoveryFor('rate_limited') });
107
+ }
108
+ }
109
+ else if (reason === 'query_error' ||
110
+ reason === 'query_timeout' ||
111
+ reason === 'result_too_large' ||
112
+ reason === 'rate_limited') {
113
+ throw ctx.fail(reason, err.message, { ...ctx.recoveryFor(reason) });
114
+ }
115
+ }
116
+ throw err;
117
+ });
86
118
  const dataTimestamp = response.osm3s?.timestamp_osm_base;
87
119
  ctx.log.info('Overpass raw results', { count: response.elements.length });
120
+ ctx.enrich({ effectiveQuery: ql });
121
+ if (response.elements.length === 0) {
122
+ ctx.enrich.notice('No elements returned. Verify query syntax, check the bbox or around filter bounds, and test at overpass-turbo.eu.');
123
+ }
88
124
  return {
89
125
  elements: response.elements,
90
126
  total_elements: response.elements.length,
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-query-raw.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-raw.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openstreetmap-query-raw.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-query-raw.tool.ts"],"names":[],"mappings":"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"}
@@ -36,5 +36,5 @@ export declare const openstreetmapReverse: import("@cyanheads/mcp-ts-core").Tool
36
36
  readonly code: JsonRpcErrorCode.NotFound;
37
37
  readonly when: "Nominatim returns an error indicating no OSM data at the given coordinates (e.g., open ocean or unmapped territory).";
38
38
  readonly recovery: "Verify the coordinates are correct. Try a lower zoom value to match at a coarser level (e.g., zoom=10 for city-level).";
39
- }]>;
39
+ }], undefined>;
40
40
  //# sourceMappingURL=openstreetmap-reverse.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-reverse.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-reverse.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgJ/B,CAAC"}
1
+ {"version":3,"file":"openstreetmap-reverse.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-reverse.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgJ/B,CAAC"}
@@ -12,7 +12,7 @@ export function resolveTagInput(input) {
12
12
  const hasTagValue = Boolean(input.tag_value?.trim());
13
13
  if (hasAmenity && (hasTagKey || hasTagValue))
14
14
  return { error: 'both' };
15
- if (!hasAmenity && !hasTagKey)
15
+ if (!hasAmenity && (!hasTagKey || !hasTagValue))
16
16
  return { error: 'neither' };
17
17
  return {
18
18
  tagKey: hasAmenity ? 'amenity' : (input.tag_key ?? ''),
@@ -1 +1 @@
1
- {"version":3,"file":"openstreetmap-tag-input.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-tag-input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAI/B;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErD,IAAI,UAAU,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACvE,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAE3D,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACtD,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"openstreetmap-tag-input.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/openstreetmap-tag-input.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAI/B;IACC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErD,IAAI,UAAU,IAAI,CAAC,SAAS,IAAI,WAAW,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IACvE,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAE7E,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;QACtD,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC;KACvE,CAAC;AACJ,CAAC"}
@@ -6,6 +6,17 @@ import type { Context } from '@cyanheads/mcp-ts-core';
6
6
  import type { AppConfig } from '@cyanheads/mcp-ts-core/config';
7
7
  import type { StorageService } from '@cyanheads/mcp-ts-core/storage';
8
8
  import type { OverpassAroundParams, OverpassBboxParams, OverpassElement, OverpassPoi, OverpassResponse } from './types.js';
9
+ /**
10
+ * Returns false for query-deterministic failures so withRetry does not re-submit
11
+ * a query that will fail identically every time. Exported for unit testing.
12
+ *
13
+ * Deterministic cases:
14
+ * - reason 'query_timeout' / 'result_too_large' — thrown by the service after
15
+ * parsing a JSON remark from Overpass (HTTP 200 with embedded error).
16
+ * - statusCode 400 — thrown by fetchWithTimeout with InvalidParams code before
17
+ * the service's manual 400 check runs (fetchWithTimeout intercepts non-2xx).
18
+ */
19
+ export declare function isTransientOverpassError(error: unknown): boolean;
9
20
  /**
10
21
  * Great-circle distance in meters between two WGS84 coordinates (haversine).
11
22
  * Accurate to well within a meter at the ≤50km radius this server supports —
@@ -1 +1 @@
1
- {"version":3,"file":"overpass-service.d.ts","sourceRoot":"","sources":["../../../src/services/overpass/overpass-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAWpB;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9F;AAED,qBAAa,eAAe;gBAEd,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IAExD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;IAKrB,gDAAgD;IAChD,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;IActD,8CAA8C;IAC9C,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;YAepC,YAAY;IA6E1B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAK1D,2DAA2D;IAC3D,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE;CAe9D;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAEpF;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD"}
1
+ {"version":3,"file":"overpass-service.d.ts","sourceRoot":"","sources":["../../../src/services/overpass/overpass-service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAM/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,KAAK,EACV,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAcpB;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQhE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAS9F;AAED,qBAAa,eAAe;gBAEd,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc;IAExD,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,aAAa;IAKrB,gDAAgD;IAChD,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,GAAG,MAAM;IActD,8CAA8C;IAC9C,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM;YAepC,YAAY;IAkE1B,4EAA4E;IAC5E,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAK1D,2DAA2D;IAC3D,iBAAiB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,WAAW,EAAE;CAe9D;AAMD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,CAEpF;AAED,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD"}
@@ -3,8 +3,8 @@
3
3
  * @module services/overpass/overpass-service
4
4
  */
5
5
  import { createHash } from 'node:crypto';
6
- import { serviceUnavailable, timeout as timeoutError } from '@cyanheads/mcp-ts-core/errors';
7
- import { withRetry } from '@cyanheads/mcp-ts-core/utils';
6
+ import { McpError, serviceUnavailable, timeout as timeoutError, } from '@cyanheads/mcp-ts-core/errors';
7
+ import { fetchWithTimeout, withRetry } from '@cyanheads/mcp-ts-core/utils';
8
8
  import { getServerConfig } from '../../config/server-config.js';
9
9
  /** Cache TTL for Overpass results: 10 minutes (more volatile than geocoding). */
10
10
  const CACHE_TTL_SECONDS = 600;
@@ -12,6 +12,29 @@ const CACHE_TTL_SECONDS = 600;
12
12
  const OVERPASS_TIMEOUT_PATTERN = /runtime error|query timed out|timed out/i;
13
13
  /** Overpass out-of-memory error patterns. */
14
14
  const OVERPASS_OOM_PATTERN = /out of memory|query run out/i;
15
+ /** Client-side deadline per attempt (Overpass queries can run long). */
16
+ const OVERPASS_CLIENT_TIMEOUT_MS = 90_000;
17
+ /**
18
+ * Returns false for query-deterministic failures so withRetry does not re-submit
19
+ * a query that will fail identically every time. Exported for unit testing.
20
+ *
21
+ * Deterministic cases:
22
+ * - reason 'query_timeout' / 'result_too_large' — thrown by the service after
23
+ * parsing a JSON remark from Overpass (HTTP 200 with embedded error).
24
+ * - statusCode 400 — thrown by fetchWithTimeout with InvalidParams code before
25
+ * the service's manual 400 check runs (fetchWithTimeout intercepts non-2xx).
26
+ */
27
+ export function isTransientOverpassError(error) {
28
+ if (error instanceof McpError) {
29
+ const reason = error.data?.reason;
30
+ if (reason === 'query_timeout' || reason === 'result_too_large')
31
+ return false;
32
+ // fetchWithTimeout throws InvalidParams for HTTP 400 — malformed query, never transient
33
+ if (error.data?.statusCode === 400)
34
+ return false;
35
+ }
36
+ return true;
37
+ }
15
38
  /**
16
39
  * Great-circle distance in meters between two WGS84 coordinates (haversine).
17
40
  * Accurate to well within a meter at the ≤50km radius this server supports —
@@ -73,7 +96,7 @@ export class OverpassService {
73
96
  return cached;
74
97
  }
75
98
  const result = await withRetry(async () => {
76
- const response = await fetch(this.endpoint(), {
99
+ const response = await fetchWithTimeout(this.endpoint(), OVERPASS_CLIENT_TIMEOUT_MS, ctx, {
77
100
  method: 'POST',
78
101
  headers: {
79
102
  'Content-Type': 'application/x-www-form-urlencoded',
@@ -82,20 +105,9 @@ export class OverpassService {
82
105
  body: `data=${encodeURIComponent(query)}`,
83
106
  signal: ctx.signal,
84
107
  });
85
- if (response.status === 429) {
86
- throw serviceUnavailable('Overpass API returned HTTP 429 all query slots occupied.', {
87
- reason: 'rate_limited',
88
- });
89
- }
90
- if (response.status === 400) {
91
- const body = await response.text();
92
- throw serviceUnavailable(`Overpass API returned HTTP 400 — malformed query syntax. ${body.slice(0, 200)}`, { reason: 'query_error' });
93
- }
94
- if (!response.ok) {
95
- throw serviceUnavailable(`Overpass API returned HTTP ${response.status}`, {
96
- status: response.status,
97
- });
98
- }
108
+ // fetchWithTimeout already handles all non-2xx responses (429 → RateLimited,
109
+ // 400 InvalidParams, 5xx ServiceUnavailable) and throws before reaching here.
110
+ // The response arriving here is always HTTP 2xx.
99
111
  const text = await response.text();
100
112
  if (/^\s*<(!DOCTYPE\s+html|html[\s>])/i.test(text)) {
101
113
  throw serviceUnavailable('Overpass returned an HTML page instead of JSON — likely rate-limited.');
@@ -119,6 +131,7 @@ export class OverpassService {
119
131
  operation: 'overpass.query',
120
132
  context: ctx,
121
133
  baseDelayMs: 2000,
134
+ isTransient: isTransientOverpassError,
122
135
  signal: ctx.signal,
123
136
  });
124
137
  await ctx.state.set(cacheKey, result, { ttl: CACHE_TTL_SECONDS });
@@ -1 +1 @@
1
- {"version":3,"file":"overpass-service.js","sourceRoot":"","sources":["../../../src/services/overpass/overpass-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"overpass-service.js","sourceRoot":"","sources":["../../../src/services/overpass/overpass-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cyanheads/openstreetmap-mcp-server",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "mcpName": "io.github.cyanheads/openstreetmap-mcp-server",
5
5
  "description": "Geocode, reverse geocode, and run Overpass spatial queries on OpenStreetMap data via MCP. STDIO or Streamable HTTP.",
6
6
  "type": "module",
@@ -16,7 +16,8 @@
16
16
  "clean": "bun run scripts/clean.ts",
17
17
  "devcheck": "bun run scripts/devcheck.ts",
18
18
  "tree": "bun run scripts/tree.ts",
19
- "format": "biome check --write --unsafe",
19
+ "format": "biome check --write .",
20
+ "format:unsafe": "biome check --write --unsafe .",
20
21
  "test": "bunx vitest run",
21
22
  "audit:refresh": "rm -f bun.lock && bun install && bun audit",
22
23
  "list-skills": "bun run scripts/list-skills.ts",
@@ -76,7 +77,7 @@
76
77
  "access": "public"
77
78
  },
78
79
  "dependencies": {
79
- "@cyanheads/mcp-ts-core": "^0.9.13",
80
+ "@cyanheads/mcp-ts-core": "^0.9.16",
80
81
  "pino-pretty": "^13.1.3",
81
82
  "zod": "^4.4.3"
82
83
  },
package/server.json CHANGED
@@ -12,14 +12,14 @@
12
12
  "url": "https://openstreetmap.caseyjhand.com/mcp"
13
13
  }
14
14
  ],
15
- "version": "0.2.2",
15
+ "version": "0.2.4",
16
16
  "packages": [
17
17
  {
18
18
  "registryType": "npm",
19
19
  "registryBaseUrl": "https://registry.npmjs.org",
20
20
  "identifier": "@cyanheads/openstreetmap-mcp-server",
21
21
  "runtimeHint": "bun",
22
- "version": "0.2.2",
22
+ "version": "0.2.4",
23
23
  "packageArguments": [
24
24
  {
25
25
  "type": "positional",
@@ -43,7 +43,7 @@
43
43
  "description": "User-Agent sent to Nominatim and Overpass. Required by usage policy.",
44
44
  "format": "string",
45
45
  "isRequired": false,
46
- "default": "openstreetmap-mcp-server/0.2.2"
46
+ "default": "openstreetmap-mcp-server/0.2.4"
47
47
  },
48
48
  {
49
49
  "name": "OSM_OVERPASS_BASE_URL",
@@ -69,7 +69,7 @@
69
69
  "registryBaseUrl": "https://registry.npmjs.org",
70
70
  "identifier": "@cyanheads/openstreetmap-mcp-server",
71
71
  "runtimeHint": "bun",
72
- "version": "0.2.2",
72
+ "version": "0.2.4",
73
73
  "packageArguments": [
74
74
  {
75
75
  "type": "positional",
@@ -127,7 +127,7 @@
127
127
  "description": "User-Agent sent to Nominatim and Overpass. Required by usage policy.",
128
128
  "format": "string",
129
129
  "isRequired": false,
130
- "default": "openstreetmap-mcp-server/0.2.2"
130
+ "default": "openstreetmap-mcp-server/0.2.4"
131
131
  },
132
132
  {
133
133
  "name": "OSM_OVERPASS_BASE_URL",