Skip to main content
Part of the MCP Tools Reference, which indexes every tool. Connection, auth, plans and errors are in the MCP Server overview. The curl examples assume export WM_KEY="wm_…". With an OAuth token, replace -H "X-WorldMonitor-Key: $WM_KEY" with -H "Authorization: Bearer $TOKEN".

get_climate_data

Return the seeded climate bundle: temperature and precipitation anomalies against 30-year WMO normals, climate-relevant disaster alerts (ReliefWeb, GDACS, FIRMS), the NOAA Mauna Loa CO2 trend, OpenAQ/WAQI PM2.5 station readings, NSIDC/NOAA Arctic sea-ice extent and ocean-heat indicators, active weather alerts and climate news. Freshness follows each source seed time and budget (anomalies 9 h, CO2 3 days, sea ice 2 days), plus producer content-age limits for anomalies and news. Seeded-cache read with no live fetch: weight 1 on API plans, included in the signed-in free allowance. dataset selects sub-datasets, country narrows the disaster and air-quality lists, limit caps each list (default 30, 0 for no cap). Parameters (tool-specific):
  • API endpoints: GET /api/climate/v1/get-co2-monitoring, GET /api/climate/v1/get-ocean-ice-data, GET /api/climate/v1/list-air-quality-data, GET /api/climate/v1/list-climate-anomalies, GET /api/climate/v1/list-climate-disasters, GET /api/climate/v1/list-climate-news
  • Access: free-account — callable by any signed-in account; free accounts spend the daily free allowance, Pro calls spend the daily quota. Accepts the universal summary argument.
  • Kind: cache read — sub-second response from Redis bootstrap cache.
  • Freshness budget: per slice — weather alerts 45 min, climate news intelligence 90 min, anomalies 9 h, disasters 12 h, air quality 3 h, ocean/ice 48 h, CO2 monitoring 72 h. These seed budgets match /api/health. Anomalies and climate news also honor their producer content-age limits, currently 14 days and 7 days. The single stale flag ORs every check, so an expired seed, failed refresh, missing metadata, or expired content clock marks the bundle stale. cached_at is the oldest contributing seed time, not a shared expiry deadline. dataset narrows the returned data after the bundle freshness check.

get_imd_cyclone_marine

Bounded India Meteorological Department sea-area and coastal marine bulletins from the public mausam.imd.gov.in pages: storm warnings, port signals, storm-surge or tidal warnings, wind, visibility, and sea state per area, each with its validity window. Products stay typed and are not merged into weather:alerts:v1. IMD cyclone track, wind radii, and cone are API-only and disabled; GDACS tropical cyclones cover the North Indian Ocean. Port warning and fishermen warning PDFs are not parsed. Always read coverageState: degraded means some bulletin pages failed and their last-good records were carried, unavailable means no page was readable, and ok is live. Per-page status is under products.<id>.pages. Empty lists with degraded or unavailable coverage are not an India all-clear. A response over the 64 KB output budget trims lists from the end, the repeated records list and the alert-shaped copies first, and reports each trimmed list under transportCoverage.collections. Parameters (tool-specific):
  • API endpoints: none (MCP-only cache read of weather:imd-cyclone-marine:v1; no equivalent public REST operation yet).
  • Access: free-account — callable by any signed-in account; free accounts spend the daily free allowance, Pro calls spend the daily quota. Accepts the universal summary argument.
  • Kind: bounded cache read from the on-demand IMD marine bulletin snapshot.
  • Freshness budget: up to 45 min before stale: true is flagged (matches seed-meta:weather:imd-cyclone-marine).

get_natural_disasters

Recent M4.5+ earthquakes (USGS and Earthquakes Canada / NRCan), active wildfires (NASA FIRMS), and natural hazard events. Includes magnitude, location, source, and threat severity. A response over the 128 KB output budget simplifies or omits storm cone and track geometry and samples regional detail, with counts under transportCoverage; a jmespath projection that fits returns the original geometry. Parameters (tool-specific):
  • API endpoints: GET /api/natural/v1/list-natural-events, GET /api/seismology/v1/list-earthquakes, GET /api/wildfire/v1/list-fire-detections
  • Area and age filters: bbox takes sw_lat, sw_lon, ne_lat and ne_lon (all required). Pass either bbox or all three of lat, lon and radius_km; mixing them or passing part of the radius returns Invalid params before any allowance is spent. The filters apply to earthquakes, fire detections and natural events, including the regional events.westernPacific.events and events.hkoWarnings.warnings lists, after min_magnitude and active_only and before limit. A row without valid coordinates (or, with since_days, without a date) is dropped, and data.geo_filter.excluded counts those rows per dataset so an empty result is not mistaken for no nearby events. When since_days reaches further back than a list’s oldest dated row, data.geo_filter.oldest_held gives that row’s time in epoch milliseconds, so a wide window is not mistaken for full coverage. Without these arguments the response has no geo_filter key.
  • Access: free-account — callable by any signed-in account; free accounts spend the daily free allowance, Pro calls spend the daily quota. Accepts the universal summary argument.
  • Kind: cache read — sub-second response from Redis bootstrap cache.
  • Freshness budget: up to 30 min before stale: true is flagged (set by the seeder cron’s expected interval).
On Pro and Pro Business, get_natural_disasters opens one Natural Disasters allocation. Repeated opens and dataset, magnitude, activity and limit filters reuse that admission within five minutes. Use its returned panelRequest.token as panel_request for bounded reads. Explicit refresh needs refresh: true, a UUID request_id, and no reader token; the same UUID retries the refresh allocation. API and free-account callers keep ordinary per-tool charging and existing filter coercions, and reject the paid refresh controls. Each uncached execution reads three fixed data keys and the existing seismology metadata key as one logical read within the 64-read admission. Exact successful filtered originals replay before summary or JMESPath only until the earliest observable source or EONET retention deadline. A new filter or unavailable, malformed, known degraded or unknown-clock observation can reread under the same allocation. Blocked regional source decisions remain readable but uncached, including zero-request preflight decisions. This does not establish complete provider coverage. The existing news token still permits only its exact hazard dataset list and limits 100, 20 or 1; it cannot use standalone magnitude or activity filters. Source data and internal deadlines do not add public metadata fields. Confirmed current usage accompanies authorized reads; an unknown counter omits the numeric notice.

get_radiation_data

Return the seeded radiation monitoring snapshot: gamma dose-rate readings from public monitoring stations worldwide with station, country, value, unit, time and a severity flag (normal, elevated, spike) that marks anomalous readings. Flagged stale after 30 minutes. Station observations only; an elevated reading is a flag for review, not a confirmed nuclear incident. Seeded-cache read with no live fetch: weight 1 on API plans, included in the signed-in free allowance. country is a case-insensitive name substring; anomalous_only drops normal readings; limit caps the list (default 30, 0 for no cap). Parameters (tool-specific):
  • API endpoints: GET /api/radiation/v1/list-radiation-observations
  • Access: free-account — callable by any signed-in account; free accounts spend the daily free allowance, Pro calls spend the daily quota. Accepts the universal summary argument.
  • Kind: cache read — sub-second response from Redis bootstrap cache.
  • Freshness budget: up to 30 min before stale: true is flagged (set by the seeder cron’s expected interval).

get_research_signals

Return the seeded technology and research event list: upcoming and recent conferences, earnings dates, IPOs and other tech events from curated feeds such as Techmeme and dev.events, each with type, source, date and link. Flagged stale after 8 hours. Calendar-style event signals only; no papers, patents or funding data. Seeded-cache read with no live fetch: weight 1 on API plans, included in the signed-in free allowance. type selects conference, earnings, ipo or other; source filters one feed; limit caps the list (default 30, 0 for no cap). Parameters (tool-specific):
  • API endpoints: GET /api/research/v1/list-tech-events
  • Access: free-account — callable by any signed-in account; free accounts spend the daily free allowance, Pro calls spend the daily quota. Accepts the universal summary argument.
  • Kind: cache read — sub-second response from Redis bootstrap cache.
  • Freshness budget: up to 8 h before stale: true is flagged (set by the seeder cron’s expected interval).

get_health_signals

Active disease outbreaks (WHO/ECDC etc.) and global air-quality station readings (OpenAQ/WAQI PM2.5). For health-risk screening. Parameters (tool-specific):
  • API endpoints: GET /api/health/v1/list-air-quality-alerts, GET /api/health/v1/list-disease-outbreaks
  • Access: free-account — callable by any signed-in account; free accounts spend the daily free allowance, Pro calls spend the daily quota. Accepts the universal summary argument.
  • Kind: cache read — sub-second response from Redis bootstrap cache.
  • Freshness budget: per slice — air quality 3 h, disease outbreaks 48 h. The single stale flag ORs both checks, so it flips as soon as either slice exceeds its own budget.