x402 FX, time, weather, US NWS alerts, HN, holidays, geocoding for agents.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use to convert money amounts for quotes, invoices, expense reports or price comparisons: converts an amount from one currency to another at the ECB reference rate of the latest working day or of a given past date (rates since 1999-01-04; weekends/holidays fall back to the previous working day). Returns the converted amount, the rate used and the rate date. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
Target currency (ISO 4217).
Source currency (ISO 4217).
Historical date YYYY-MM-DD (default latest).
Amount to convert (default 1).
Use to convert money amounts for quotes, invoices, expense reports or price comparisons: converts an amount from one currency to another at the ECB reference rate of the latest working day or of a given past date (rates since 1999-01-04; weekends/holidays fall back to the previous working day). Returns the converted amount, the rate used and the rate date. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| to* | string | Target currency (ISO 4217). |
| date | string | Historical date YYYY-MM-DD (default latest). |
| from* | string | Source currency (ISO 4217). |
| amount | string | Amount to convert (default 1). |
{
"type": "object",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "Target currency (ISO 4217)."
},
"date": {
"type": "string",
"description": "Historical date YYYY-MM-DD (default latest)."
},
"from": {
"type": "string",
"description": "Source currency (ISO 4217)."
},
"amount": {
"type": "string",
"description": "Amount to convert (default 1)."
}
},
"additionalProperties": false
}Use for trend questions ("how did USD/EUR move this quarter?") and for back-dated conversions: returns daily ECB reference rates for each working day between start and end (max 366 days) for the requested currencies, re-based to any base, with per-currency first, last, min, max and percent change. Paid tool: x402 USDC on Base, $0.002 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| end | string | End date YYYY-MM-DD (default today). |
| base | string | Base currency. |
| start* | string | Start date YYYY-MM-DD. |
| symbols* | string | Comma-separated currencies (max 10). |
{
"type": "object",
"required": [
"start",
"symbols"
],
"properties": {
"end": {
"type": "string",
"description": "End date YYYY-MM-DD (default today)."
},
"base": {
"type": "string",
"default": "EUR",
"description": "Base currency."
},
"start": {
"type": "string",
"description": "Start date YYYY-MM-DD."
},
"symbols": {
"type": "string",
"description": "Comma-separated currencies (max 10)."
}
},
"additionalProperties": false
}Use when you need a current, citable exchange rate: returns the latest European Central Bank reference rates (published once per working day around 16:00 CET) for about 30 major currencies, re-based to any supported currency, optionally filtered to the symbols you need. Includes the rate date so you know how fresh it is. Not for trading; for pricing, reporting, invoicing and conversions. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| base | string | Base currency (ISO 4217). |
| symbols | string | Comma-separated target currencies; all ~30 if omitted. |
{
"type": "object",
"required": [],
"properties": {
"base": {
"type": "string",
"default": "EUR",
"description": "Base currency (ISO 4217)."
},
"symbols": {
"type": "string",
"description": "Comma-separated target currencies; all ~30 if omitted."
}
},
"additionalProperties": false
}Use when an agent has a city, landmark or postal address and needs lat/lon for maps, weather, distance or logistics: returns the best match with latitude, longitude, display name, country/countryCode, optional admin hierarchy, street/house number, OSM ids and bounding box. Public OpenStreetMap-derived data via Photon (Komoot), with Nominatim fallback. Not found = 404, not charged. Attribute OpenStreetMap when redistributing. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| q* | string | Place name or address to resolve (aliases: place, address). |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Place name or address to resolve (aliases: place, address)."
}
},
"additionalProperties": false
}Use when an agent has coordinates (from GPS, a map click or another API) and needs a human-readable place: returns the nearest OSM feature with display name, country, city, street when available, and lat/lon of the matched feature. Public OpenStreetMap-derived data via Photon, Nominatim fallback. Empty ocean / unknown = 404, not charged. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| lat* | string | Latitude -90..90. |
| lon* | string | Longitude -180..180. |
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "string",
"description": "Latitude -90..90."
},
"lon": {
"type": "string",
"description": "Longitude -180..180."
}
},
"additionalProperties": false
}Use for autocomplete-style place pickers or when the query is ambiguous: returns up to limit matches (default 5, max 10), each with lat/lon, display name, type and country. Same OpenStreetMap-derived sources as /v1/geocode. Empty result = 404, not charged. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| q* | string | Place name or address to search (aliases: place, address). |
| limit | string | Max results (1-10). |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Place name or address to search (aliases: place, address)."
},
"limit": {
"type": "string",
"default": "5",
"description": "Max results (1-10)."
}
},
"additionalProperties": false
}Use to see what the tech/startup community is reading right now or to monitor launches: returns up to 30 stories from one Hacker News list (top = front page, new, best, ask, show, job) via the official HN API, each with title, external URL and domain, score, comment count, posted time and the news.ycombinator.com discussion link. Usernames are omitted (non-personal data). For full-text HN search and complete comment threads use ScrapeMole Social: https://social.scrapemole.workers.dev/v1/hn/search and /v1/hn/thread. Paid tool: x402 USDC on Base, $0.002 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| list | string | top, new, best, ask, show or job. |
| limit | string | Stories to return (1-30). |
{
"type": "object",
"required": [],
"properties": {
"list": {
"type": "string",
"default": "top",
"description": "top, new, best, ask, show or job."
},
"limit": {
"type": "string",
"default": "10",
"description": "Stories to return (1-30)."
}
},
"additionalProperties": false
}Use before booking meetings, shipping deadlines or marketplace cut-offs: given a country and a date, returns isHoliday true/false, the matching holiday record(s) if any, and the next public holiday on or after that date in the same country (looks ahead into the following year if needed). Public calendar data only. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| date* | string | Date to check (YYYY-MM-DD). |
| country* | string | ISO 3166-1 alpha-2 country code. |
{
"type": "object",
"required": [
"country",
"date"
],
"properties": {
"date": {
"type": "string",
"description": "Date to check (YYYY-MM-DD)."
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code."
}
},
"additionalProperties": false
}Use for scheduling, payroll calendars, travel planning or "is the office closed?": returns every public holiday for a country (e.g. LT, US, DE, JP) in a given year from Nager.Date (~100 countries). Each holiday has date, English name, local name, whether it is nationwide (global) or limited to counties/states, fixed vs movable, and types (Public, Bank, School, Optional, Authority). Public, non-personal data. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| year | string | Calendar year (default current UTC year). |
| country* | string | ISO 3166-1 alpha-2 country code. |
{
"type": "object",
"required": [
"country"
],
"properties": {
"year": {
"type": "string",
"description": "Calendar year (default current UTC year)."
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code."
}
},
"additionalProperties": false
}Use before calling /v1/holidays or /v1/holidays/check to discover supported country codes: returns every country Nager.Date covers (~100), each with countryCode and English name. No personal data. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Use for travel or leave planning: returns long-weekend windows for a country and year where a public holiday creates 3+ consecutive days off, including whether a bridge day is needed and which dates to take off. From Nager.Date LongWeekend. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| year | string | Calendar year (default current UTC year). |
| country* | string | ISO 3166-1 alpha-2 country code. |
{
"type": "object",
"required": [
"country"
],
"properties": {
"year": {
"type": "string",
"description": "Calendar year (default current UTC year)."
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code."
}
},
"additionalProperties": false
}Use to answer "when is the next public holiday in Germany?" or to build a short upcoming-holiday list for agents: returns the next public holidays for a country from today via Nager.Date NextPublicHolidays (typically the remainder of the year plus into the next). Optional limit caps the list. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| limit | string | Max holidays to return (1-50). |
| country* | string | ISO 3166-1 alpha-2 country code. |
{
"type": "object",
"required": [
"country"
],
"properties": {
"limit": {
"type": "string",
"default": "10",
"description": "Max holidays to return (1-50)."
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code."
}
},
"additionalProperties": false
}Use for scheduling across time zones: takes a wall-clock time in a source zone (or an ISO instant with offset) and returns the same instant in each target zone with date, weekday, UTC offset and DST flag, plus the UTC instant. Handles daylight-saving transitions correctly (times in a spring-forward gap move to the first valid instant and are flagged). Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| to* | string | Comma-separated target IANA zones (max 20). |
| from | string | IANA zone of "time" (ignored if time has an offset). |
| time* | string | Local time "YYYY-MM-DD HH:MM[:SS]" in "from", or an ISO instant with Z/offset. |
{
"type": "object",
"required": [
"time",
"to"
],
"properties": {
"to": {
"type": "string",
"description": "Comma-separated target IANA zones (max 20)."
},
"from": {
"type": "string",
"default": "UTC",
"description": "IANA zone of \"time\" (ignored if time has an offset)."
},
"time": {
"type": "string",
"description": "Local time \"YYYY-MM-DD HH:MM[:SS]\" in \"from\", or an ISO instant with Z/offset."
}
},
"additionalProperties": false
}Use when an agent needs the real current time somewhere (models do not know "now"): returns the authoritative current UTC instant and, for each requested IANA time zone, the local date/time, weekday, UTC offset, abbreviation and whether daylight saving time is in effect. Computed from the IANA tz database, no upstream dependency. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| tz | string | Comma-separated IANA zones (max 20). |
{
"type": "object",
"required": [],
"properties": {
"tz": {
"type": "string",
"default": "UTC",
"description": "Comma-separated IANA zones (max 20)."
}
},
"additionalProperties": false
}Use before travel, logistics, field work, events or outdoor plans in the US, or to monitor severe weather: returns the currently active National Weather Service alerts (tornado/hurricane/flood/winter storm/heat warnings, watches and advisories) with event, severity, certainty, urgency, headline, affected areas, onset/expiry times, issuing office and a trimmed description and safety instruction (full=true for complete text). Filter by state (2-letter code, also territories and marine areas), by point (lat/lon or a US place name) or by NWS zone (e.g. TXZ211, NYC061); optionally by severity or event text. No active alerts = 200 with count 0. US only; official public-domain NWS data. Paid tool: x402 USDC on Base, $0.001 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| lat | string | Latitude (alerts covering this point). |
| lon | string | Longitude. |
| full | string | true = full description and instruction text. |
| zone | string | NWS zone or county UGC id, e.g. TXZ211 or NYC061. |
| event | string | Only alerts whose event name contains this text, e.g. "Flood" or "Tornado Warning". |
| limit | string | Max alerts (1-50). |
| place |
Use for US trip, event, delivery or field-work planning when an official forecast matters: resolves lat/lon (or a US place name) to the NWS forecast grid and returns the 7-day forecast in 12-hour periods (name, temperature in °F and °C, wind, precipitation chance, short and detailed forecast) or, with hourly=true, up to 48 hourly periods. Also returns the nearest city/state, local time zone, forecast zone and a summary of active NWS alerts for that exact point. Points outside the US = 404, not charged; use /v1/weather (MET Norway) for global forecasts. Paid tool: x402 USDC on Base, $0.002 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| lat | string | Latitude. Give lat+lon or place. |
| lon | string | Longitude. |
| hours | string | Hourly periods to return (1-48) when hourly=true. |
| place | string | US city/address/landmark, e.g. "Austin, TX". |
| alerts | string | false = skip the active-alerts lookup. |
| hourly | string | true = hourly periods instead of day/night. |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "string",
"description": "Latitude. Give lat+lon or place."
},
"lon": {
"type": "string",
"description": "Longitude."
},
"hours": {
"type": "string",
"default": "24",
"description": "Hourly periods to return (1-48) when hourly=true."
},
"place": {
"type": "string",
"description": "US city/address/landmark, e.g. \"Austin, TX\"."
},
"alerts": {
"type": "string",
"default": "true",
"description": "false = skip the active-alerts lookup."
},
"hourly": {
"type": "string",
"default": "false",
"description": "true = hourly periods instead of day/night."
}
},
"additionalProperties": false
}Use for trip planning, logistics, event or outdoor decisions: returns the forecast for a location from the Norwegian Meteorological Institute (global coverage): current temperature, wind, humidity, cloud cover, pressure and symbol, an hourly series for the next N hours, and daily summaries (min/max temperature, total precipitation, dominant symbol). Give lat/lon, or a place name resolved via Wikidata. Times are UTC. Licensed CC BY 4.0: credit MET Norway. Paid tool: x402 USDC on Base, $0.002 per successful call; call without payment to receive the PaymentRequired object.
| Argument | Type | Description |
|---|---|---|
| lat | string | Latitude -90..90. |
| lon | string | Longitude -180..180. |
| hours | string | Hourly points to return (1-48). |
| place | string | Place name (city, landmark), resolved via Wikidata. Give place or lat+lon. |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "string",
"description": "Latitude -90..90."
},
"lon": {
"type": "string",
"description": "Longitude -180..180."
},
"hours": {
"type": "string",
"default": "24",
"description": "Hourly points to return (1-48)."
},
"place": {
"type": "string",
"description": "Place name (city, landmark), resolved via Wikidata. Give place or lat+lon."
}
},
"additionalProperties": false
}| string |
| US city/address/landmark, geocoded via OpenStreetMap, e.g. "Miami, FL". |
| state | string | US state/territory or marine area code, e.g. TX, FL, PR. Give state, lat+lon, place or zone. |
| severity | string | Comma list: extreme, severe, moderate, minor, unknown. |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "string",
"description": "Latitude (alerts covering this point)."
},
"lon": {
"type": "string",
"description": "Longitude."
},
"full": {
"type": "string",
"default": "false",
"description": "true = full description and instruction text."
},
"zone": {
"type": "string",
"description": "NWS zone or county UGC id, e.g. TXZ211 or NYC061."
},
"event": {
"type": "string",
"description": "Only alerts whose event name contains this text, e.g. \"Flood\" or \"Tornado Warning\"."
},
"limit": {
"type": "string",
"default": "20",
"description": "Max alerts (1-50)."
},
"place": {
"type": "string",
"description": "US city/address/landmark, geocoded via OpenStreetMap, e.g. \"Miami, FL\"."
},
"state": {
"type": "string",
"description": "US state/territory or marine area code, e.g. TX, FL, PR. Give state, lat+lon, place or zone."
},
"severity": {
"type": "string",
"description": "Comma list: extreme, severe, moderate, minor, unknown."
}
},
"additionalProperties": false
}