Geo
liveGeographyGeocoding, country info, timezones, and sun times from public APIs
Tools
geocoderequired: queryConvert an address or place name to up to 5 matching coordinates via OpenStreetMap Nominatim. Returns latitude, longitude, display_name, and place type for each result.
queryreqstringAddress or place name to geocodeTry it
reverse_geocoderequired: latitude, longitudeConvert coordinates to a physical address. Returns street address, city, country, and postal code. Use to identify locations from lat/lng pairs.
latitudereqnumberLatitudelongitudereqnumberLongitudeTry it
get_countryrequired: code_or_nameGet country information by name or ISO code (e.g., 'US', 'FR'). Returns capital, population, currency, languages, and neighboring countries. Use for regional context or facts.
code_or_namereqstringCountry name or ISO 3166-1 alpha-2/alpha-3 codeTry it
get_timezonerequired: latitude, longitudeLook up the IANA timezone name, current local time, and UTC offset (hours) for a given latitude and longitude via TimeAPI.io. Requires coordinates — does not accept city names.
latitudereqnumberLatitudelongitudereqnumberLongitudeTry it
get_sunrise_sunsetrequired: latitude, longitudeFetch sunrise, sunset, solar noon, civil twilight begin/end, and day length (seconds) for a given latitude/longitude on an optional YYYY-MM-DD date (defaults to today) via the Sunrise-Sunset API.
latitudereqnumberLatitudelongitudereqnumberLongitudedateoptstringDate in YYYY-MM-DD format (default: today)Try it
Test with curl
The gateway speaks JSON-RPC 2.0 over HTTP POST. You can test any pack directly from the terminal.
curl -X POST https://gateway.pipeworx.io/geo/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'curl -X POST https://gateway.pipeworx.io/geo/mcp \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"geocode","arguments":{"query": "hello"}}}'Use with the SDK
Install @pipeworx/sdk to call tools from any TypeScript/Node project.
import { Pipeworx } from '@pipeworx/sdk';
const px = new Pipeworx();
const result = await px.call("geocode", {"query":"example"});// Or ask in plain English:
const answer = await px.ask("geocoding, country info, timezones, and sun times from public apis");