Planet Watch MCP
Ten environmental layers at one point on Earth in a single call: weather, air quality and pollen, sea state, aviation, space weather, hazards, earthquakes, radiation, official warnings, and whether today is unusual for the date. Fifteen sources, no API key.
How to pay
Subscribe
$29/month
Predictable monthly cost with included usage. Best for steady, high-volume traffic.
- Unlimited tools within plan limits
- One API key, billed once a month
- Cancel any time
Every environmental layer at one point on Earth, from fifteen public sources, with no API key required.
One call, ten layers
conditions_briefing(latitude, longitude) returns land weather, air quality, sea state, the nearest reporting airfield, space weather, active natural hazards, recent earthquakes, nearby radiation readings, official warnings, and whether today is climatologically unusual — from up to eleven providers.
Each layer is fetched independently, so a dead upstream degrades one section rather than failing the call. The response lists layers_returned and layers_failed explicitly. Pass include=["land","air_quality"] to fetch only what you need.
Is this weather actually unusual?
climate_anomaly answers the question a forecast cannot. It compares today against the same calendar date in previous years, from ERA5 reanalysis:
today 35.2 C · normal 31.2 C · anomaly +4.0 C · 1.2 sigma
verdict: "warmer than usual" baseline 2016-2025, range 26.5-36.3 C
The baseline always ends last year, because ERA5 lags real time by about five days and today must never sit inside its own baseline. The response says plainly that a ten-year window is a short baseline and that one day's anomaly is weather, not evidence of climate change.
A change feed for a place
watch_location(latitude, longitude, cursor) reports only the hazards and earthquakes that have appeared since you last looked. The first call sets a baseline; hand the cursor back later for the delta.
The server is stateless — the cursor carries the state, so nothing about you is stored server-side. A cursor issued for one location is rejected by another rather than silently reinterpreted.
Layers and sources
| Layer | Sources |
|---|---|
| Land weather | Open-Meteo — forecast, current conditions, geocoding |
| Air quality | Open-Meteo/CAMS — PM2.5, PM10, ozone, NO2, SO2, CO, European AQI, UV, five pollen types |
| Sea | Open-Meteo Marine (waves, swell), WorldTides (harmonic tides, optional) |
| Air | NOAA Aviation Weather Center — METAR, TAF, SIGMET, AIRMET |
| Space | NOAA SWPC — Kp index, solar wind, flares, alerts |
| Hazards | NASA EONET, USGS Volcano Hazards, USGS Water Services |
| Hydrology | Open-Meteo/GloFAS — global river discharge |
| Seismic | USGS Earthquake Hazards, EMSC |
| Radiation | Safecast |
| Climate | Open-Meteo Archive (ERA5) — same-date normals back to 1940 |
| Official warnings | US National Weather Service |
41 tools. Call coverage() for the breakdown and list_sources() for the source register.
Provenance and honest limits
Every response carries a provenance block naming only the sources behind that specific answer. The caveats are load-bearing:
- Safecast radiation data is volunteer-collected. Calibration and siting vary; not a regulatory monitoring network.
- Aviation data is advisory only — not an official preflight briefing.
- Marine forecasts are model output. Coastal and enclosed waters are modelled poorly; not for navigation.
- Air quality is model output, not a reference station, and pollen is modelled for Europe only.
- Official warnings are relayed, not issued. Act on the NWS original. US only — outside coverage the layer reports in_coverage: false rather than pretending nothing is happening.
- Earthquake magnitudes are revised after automatic detection.
Explicitly not covered: emergency alerting, official preflight briefings, navigation-grade marine forecasts, regulatory radiation monitoring, earthquake prediction, and official warnings outside the United States.