Advanced Weather MCP - Locations, Routes, Air Quality & Solar
Pricing
Pay per event
Advanced Weather MCP - Locations, Routes, Air Quality & Solar
MCP server providing structured access to global weather, air quality, solar and derived risk signals based on Open-Meteo.
Pricing
Pay per event
Rating
0.0
(0)
Developer

Assmblr
Actor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Advanced Weather MCP – Locations, Routes, Air Quality & Solar
MCP server providing structured access to global weather, air quality, solar and derived risk signals based on Open-Meteo.
No external API keys required. Recommended memory is 512MB.
Units are metric by default.
Set Actor input defaultUnits or per-tool units to imperial.
Derived metrics follow the selected unit system.
Free plans: only get_point_weather and get_air_quality (forecastDays <= 1, up to 4 hourly fields).
Paid plans: all tools available.
What this server provides
This server exposes weather and environmental data in formats that are useful for automation and AI agents:
- Point forecasts (current, hourly, daily)
- Air quality and AQI
- Solar radiation and energy potential
- Route-based weather aggregation
- Area-based weather aggregation
- Derived comfort and safety metrics
- Standardized risk flags
All data is normalized, timezone-aware, and suitable for direct machine consumption.
MCP tools
get_point_weather
Returns weather for a single GPS location.
Provides:
- Temperature, wind, rain, humidity, cloud cover
- Hourly or daily time series
- Derived metrics: heat index, wind chill, dew point
Input example:
{"lat": 50.745,"lon": 3.6,"mode": "hourly","forecastDays": 3,"hourlyFields": ["temperature_2m","relative_humidity_2m","precipitation_probability","wind_gusts_10m"],"timezone": "auto"}
Output example:
{"location": { "lat": 50.745, "lon": 3.6, "timezone": "Europe/Brussels" },"units": { "hourly": { "temperature_2m": "C", "wind_gusts_10m": "km/h" } },"hourly": [{"time": "2026-01-13T12:00","temperature_2m": 6.2,"relative_humidity_2m": 80,"precipitation_probability": 35,"wind_gusts_10m": 28,"dewPointC": 3.1}]}
get_air_quality
Returns air quality and pollutant levels for a GPS location.
Provides:
- AQI
- PM2.5, PM10, NO2, O3
- Summary values for the next 24 hours and overall period
Input example:
{"lat": 50.745,"lon": 3.6,"forecastDays": 2,"hourlyFields": ["aqi", "pm2_5", "pm10", "no2", "o3"],"timezone": "auto"}
Output example:
{"location": { "lat": 50.745, "lon": 3.6, "timezone": "Europe/Brussels" },"units": { "system": "metric" },"hourly": [{ "time": "2026-01-13T12:00", "aqi": 54, "pm2_5": 9.2, "pm10": 15.1, "no2": 12.4, "o3": 62.0 }],"summary": { "maxAqiNext24h": 62, "maxAqiOverall": 72, "category": "moderate" }}
get_solar_forecast
Returns solar radiation for a GPS location.
Provides:
- Hourly solar radiation metrics
- Daily total energy per m2
- Time windows with highest average radiation
Input example:
{"lat": 50.745,"lon": 3.6,"forecastDays": 2,"hourlyFields": ["shortwave_radiation", "direct_normal_irradiance"],"timezone": "auto"}
Output example:
{"location": { "lat": 50.745, "lon": 3.6, "timezone": "Europe/Brussels" },"units": { "system": "metric" },"hourly": [{ "time": "2026-01-13T12:00", "shortwave_radiation": 210, "direct_normal_irradiance": 340 }],"dailySummaries": [{ "date": "2026-01-13", "totalShortwaveWhM2": 1550, "peakShortwaveWm2": 420 }],"bestChargingWindows": [{ "start": "2026-01-13T11:00", "end": "2026-01-13T14:00", "averageShortwaveWm2": 280 }]}
get_route_weather
Returns weather aggregated along a route.
By default, the route uses the points you provide. Sampling only happens when you set sampling. With sampling: "auto", the tool resamples the route only if the total route length is at least 10 km, and it enforces a minimum spacing of 5 km (or 5 miles when units is imperial). If you want zero resampling, omit sampling entirely.
Provides:
- Worst-case temperature, wind, rain and precipitation probability per hour
- Optional per-point time series
- Optional ETA-based summaries along the route
- Risk flags based on thresholds
Input example:
{"route": [[50.745, 3.6], [51.219, 4.402]],"sampling": "auto","metrics": ["temperature", "wind_gusts", "precipitation_probability", "rain"],"departureTime": "2026-01-13T12:00","averageSpeedKph": 80,"includePointSummary": true,"timezone": "auto"}
Output example (perPointSummary truncated):
{"samplesUsed": 16,"routeLengthEstimateKm": 76.9,"perHourWorstCase": [{ "time": "2026-01-13T12:00", "temperatureMax": 7.1, "windGustsMax": 32, "precipitationProbabilityMax": 45 }],"routeSummary": {"mode": "eta","departureTime": "2026-01-13T12:00","averageSpeedKph": 80,"maxWindGusts": 32,"maxPrecipitationProbability": 45,"rainLikely": false,"highWindLikely": false,"snowLikely": false,"hotspots": []},"perPointSummary": [{ "pointIndex": 0, "lat": 50.745, "lon": 3.6, "distanceKm": 0, "timeWindow": { "start": "2026-01-13T12:00", "end": "2026-01-13T12:00" }, "temperatureMin": 6.8, "temperatureMax": 6.8 },{ "pointIndex": 1, "lat": 50.781, "lon": 3.657, "distanceKm": 5.1, "timeWindow": { "start": "2026-01-13T12:04", "end": "2026-01-13T12:04" }, "temperatureMin": 6.7, "temperatureMax": 6.7 }]}
Note: perPointSummary includes one entry per sample (16 in this example). Only the first 2 are shown above.
get_area_weather
Returns weather aggregated over an area.
The area is sampled as a grid of GPS points.
Provides:
- Hourly and daily aggregates across the grid
- Maximum and average values per field
- Risk flags based on thresholds
Input example:
{"boundingBox": { "minLat": 50.6, "maxLat": 50.9, "minLon": 3.4, "maxLon": 3.9 },"grid": { "rows": 3, "cols": 3 },"fields": ["temperature", "wind_gusts", "precipitation_probability", "rain"],"forecastDays": 2,"timezone": "auto"}
Output example:
{"gridSize": { "rows": 3, "cols": 3 },"pointsUsed": 9,"units": { "system": "metric", "temperature": "C", "windSpeed": "km/h", "precipitation": "mm", "distance": "km" },"aggregatedHourly": [{ "time": "2026-01-13T12:00", "avgTemperature": 6.3, "maxWindGust": 30, "maxPrecipitationProbability": 42, "maxRain": 1.2, "maxSnowfall": 0 }],"aggregatedDaily": [{ "date": "2026-01-13", "avgTemperature": 6.1, "maxWindGust": 33, "maxPrecipitationProbability": 58, "rainSum": 2.4, "snowfallSum": 0 }],"riskFlags": []}
get_risk_flags
Returns standardized hazards for a location, route or area.
Provides:
- Hazard type (wind, rain, heat, cold, air quality, visibility)
- Severity
- Time window
- Explanation
Input example:
{"lat": 50.745,"lon": 3.6,"startDate": "2026-01-13","endDate": "2026-01-14","timezone": "auto"}
Output example:
{"units": { "system": "metric" },"hazards": [{"type": "high_wind","severity": "moderate","timeWindow": { "start": "2026-01-13T18:00", "end": "2026-01-13T18:00" },"explanation": "Wind gusts reach 71.0 km/h (threshold 70 km/h).","value": 71,"threshold": 70}]}
Risk thresholds
Default thresholds are applied to derive hazards:
- Wind gusts (windGustsKph)
- Rainfall rate (rainMmPerHour)
- Precipitation probability (precipitationProbability)
- Heat index (heatIndexC)
- Freezing temperature (freezeTempC)
- Air quality (aqi)
- Visibility (visibilityKm)
Thresholds can be overridden per request.
Pricing (Pay-Per-Event)
Pricing is based on how many locations are analyzed.
- A single GPS location = 1 event
- Routes and areas scale with how many locations they contain
- Risk flags are free when derived from existing results
In other words:
1 event = 1 location of weather intelligence.
Output dataset
Every MCP call is written to the default dataset with:
- Input summary
- Output summary
- Charged events
- Timestamp