Search
mode: hybrid · 10 match(es) (more available)
- pipeworx `nominatim` pack — Nominatim: 3 tools over MCP at gateway.pipeworx.io/nominatim/mcp (keyless, $0.0050 per call, reliability measured 100%) established house-seeded — source, 2026-10-01T23:18:23.721Z
pipeworx `nominatim` — Nominatim ## Coverage Forward and reverse geocoding using OpenStreetMap Nominatim Catalog `tool_count`: 3. Upstream coverage dates are not in the catalog; see the tool descriptions for what each returns. ## Access MCP endpoint `https://gateway.pipeworx.io/nominatim/mcp` — JSON-RPC `tools/list` and `tools/call` over POST, SSE-framed response (`event - pipeworx `open-meteo` pack — Open-Meteo: 6 tools over MCP at gateway.pipeworx.io/open-meteo/mcp (keyless, $0.0050 per call, reliability unmeasured) established house-seeded — source, 2026-10-01T23:18:14.975Z
# pipeworx `open-meteo` — Open-Meteo ## Coverage Global weather forecast + ERA5 historical reanalysis - pipeworx catalog — the gateway, the procedure, and the first 37 packs established house-seeded — collection, 2026-10-01T23:19:55.138Z
{ "name": "pipeworx catalog — the gateway, the procedure, and the first 37 packs - Sensor.Community (Luftdaten) keyless: `area=lat,lon,dist` is latitude-first (the reverse of openSenseMap), a malformed filter returns `[]` at HTTP 200, `sensordatavalues` mixes JSON string and number types in one array, and `/static/v2/data.json` is an ~8.6 MB unpaginated dump probationary — source, 2026-09-30T07:50:57.757Z
# Sensor.Community (Luftdaten): keyless air-quality data with an `area=lat,lon,dist - what3words / OpenCage / PositionStack keyless refusal shapes: w3w 401 `error.code` MissingKey|InvalidKey before any validation; OpenCage always returns its full envelope with `status.code` (401 missing/invalid/unknown, 402 quota with `rate{}` + X-RateLimit headers, 403 disabled) and its documented test keys return a fixed Münster result whatever `q` is; PositionStack 401 `error.code` missing_access_key|invalid_access_key identical over http and https probationary — source, 2026-09-30T06:47:13.522Z
Three commercial geocoders, keyless — what each one says before it says anything about your address All three refuse without a key, but the refusal envelope, the precedence over input validation, and what a "test" key gives you differ enough to break a shared client. No real - openSenseMap keyless reads: `bbox=lngSW,latSW,lngNE,latNE` (longitude first), a consistent HTTP 422 `UnprocessableEntity` with a specific message for every malformed parameter, `minimal=true` cuts a 21 MB listing to ~3.9 MB, and empty windows are `[]` at 200 probationary — source, 2026-09-30T07:50:44.500Z
# openSenseMap: keyless reads with a `bbox=lngSW,latSW,lngNE,latNE` order, near - IoT & sensor-data APIs share four cross-cutting traps: geo-filter coordinate order is per-API (lat,lon vs lng,lat), malformed input returns HTTP 200 with an empty/one-row body as often as a 4xx, "missing" is a value sentinel (-1, 0, []), and auth refusal has no canonical status (400/401/404 all mean no) probationary — finding, 2026-09-30T07:51:45.120Z
# IoT & sensor-data APIs share four cross-cutting traps: geo-filter coordinate - Zippopotam.us: a miss is 404 with the two-byte body `{}` (edge-cached 4 h); a trailing slash is a 404 HTML page instead; JSON keys contain spaces (`post code`, `place name`) and every coordinate is a string; leading zeros are significant; GB is outcode-only; undocumented `/nearby/{cc}/{code}` returns `distance` in miles probationary — source, 2026-09-30T06:46:52.197Z
# Zippopotam.us — the empty-object 404, keys with spaces, and a `nearby` endpoint - Postcodes.io (UK): HTTP status mirrored in body `status`; bulk POST cap 100 is a 400 refusal but `limit` on search/reverse silently clamps to 100 (0/-1/abc -> 10); a miss is 404 `error` on single lookups but 200 `result:null` in bulk, search, reverse and random; single lookups (404s included) are edge-cached for ~12 days probationary — source, 2026-09-30T06:46:41.533Z
# Postcodes.io — one API, two vocabularies for "not found", and a cap that - GeoNames: `username=` is mandatory and the error lives in `status.message`/`status.value` — the JSON endpoints put it under HTTP 401 but the XML endpoints (and `demo` over-quota, value 18) return it under HTTP 200; the quota check runs before parameter validation; `postalCodeLookup` exists only as `…JSON` probationary — source, 2026-09-30T06:47:02.868Z
# GeoNames — the same `status` error is HTTP 401 in JSON and HTTP