PixelGust Environmental Data

Weather, climate, soil, terrain, fire and flood risk data for any point or polygon. Free tier.

Should I use this

Quality & Safety

A
Description quality
87%
Schema completeness
100%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • LOWTool 'get_terrain' description lacks action verbin get_terrain
  • LOWTool 'get_hazards' description lacks action verbin get_hazards

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,136Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.67% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "mcp": {
      "url": "https://pixelgust.com/mcp"
    }
  }
}

Remote endpoints

https://pixelgust.com/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_current_weather(lat, lon)

Current weather conditions for a point: temperature, humidity, dewpoint, wind speed and direction, precipitation, pressure, cloud cover, solar radiation, plus terrain, land cover, NDVI, population density, and soil context. Source: NOAA GFS 0.25 degree, updated every 6 hours. The response's units object gives each value's unit and time basis.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude in decimal degrees, -90 to 90"
    },
    "lon": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude in decimal degrees, -180 to 180"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢get_weather_forecast(lat, lon, day)

Daily weather forecast for a point. day is 0-based: day 0 is the first forecast day, the day after the GFS run date (UTC), not today. forecast_dates in the response lists all available days (currently 6 or 7 depending on the model run). The response gives the calendar date of the day returned, and daily totals or mean, min, and max per variable. The response's units object gives each value's unit and time basis.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude in decimal degrees, -90 to 90"
    },
    "lon": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude in decimal degrees, -180 to 180"
    },
    "day": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Forecast day, 0-based: 0 is the first forecast day. forecast_dates in the response lists all available days"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢get_historical_climate(lat, lon, month)

10-year historical climate averages (2015-2024, ERA5 reanalysis) for a point. Pass month 1-12 for that month's climatology with min and max ranges: accumulations (precipitation, snowfall, evaporation, radiation) are then totals for that month, for example precipitation_mm in mm/month. Omit month for the annual climate: accumulations are then annual totals (mm/year, MJ/m2/year). Evaporation is positive (water evaporated). Use this for questions about typical climate, growing seasons, or what weather to expect at a location and time of year. The response's units object gives each value's unit and time basis.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude in decimal degrees, -90 to 90"
    },
    "lon": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude in decimal degrees, -180 to 180"
    },
    "month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Optional month 1-12. Omit it for the annual climate"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢get_climate_timeseries(lat, lon, variable)

Monthly time series 2015-2025 (about 130 monthly values) for one variable at a point, plus the 12-month climatology. Accumulation variables are monthly totals: precipitation_mm and total_evaporation_mm in mm/month (evaporation positive), snowfall_cm in cm/month, net_solar_radiation_mj_m2 and net_thermal_radiation_mj_m2 in MJ/m2/month. Net thermal is negative when the surface loses heat. Sum 12 months for an annual total. Other variables are monthly means (temperatures in C, pressure in hPa, wind speed in m/s, humidity and cloud cover in %, soil water as volume fraction, ndvi unitless, fire_weather_index as FWI). The response carries a unit string. Use for trend questions (is it getting hotter or drier here?). Wind direction is not available as a time series.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude in decimal degrees, -90 to 90"
    },
    "lon": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude in decimal degrees, -180 to 180"
    },
    "variable": {
      "type": "string",
      "enum": [
        "temperature_c",
        "dewpoint_c",
        "skin_temperature_c",
        "surface_pressure_hpa",
        "precipitation_mm",
        "snowfall_cm",
        "total_evaporation_mm",
        "soil_water_layer_1_vol",
        "wind_speed_ms",
        "net_solar_radiation_mj_m2",
        "net_thermal_radiation_mj_m2",
        "relative_humidity_pct",
        "cloud_cover_pct",
        "ndvi",
        "fire_weather_index"
      ],
      "description": "Variable to return"
    }
  },
  "required": [
    "lat",
    "lon",
    "variable"
  ]
}
🟢get_terrain(lat, lon)

Terrain for a point: elevation (m), slope and aspect (degrees) at 30 m resolution (Copernicus DEM), plus Topographic Wetness Index (flood susceptibility indicator).

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude in decimal degrees, -90 to 90"
    },
    "lon": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude in decimal degrees, -180 to 180"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢get_hazards(lat, lon)

Natural hazard indices for a point: Fire Weather Index (current danger), soil erosion risk (RUSLE, t/ha/yr), and flood susceptibility (Topographic Wetness Index).

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude in decimal degrees, -90 to 90"
    },
    "lon": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude in decimal degrees, -180 to 180"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢get_environment(lat, lon)

Environmental data for a point: NDVI vegetation index (300 m), annual evapotranspiration (MODIS, mm/year), and ESA WorldCover land cover class.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude in decimal degrees, -90 to 90"
    },
    "lon": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude in decimal degrees, -180 to 180"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢get_proximity(lat, lon)

Straight-line distance in km from a point to the nearest feature of six layers: coastline, highway (motorway or trunk road), airport (large or medium), major port, hospital or clinic, and school. Each layer is returned with its display name and distance_km.

Input Schema

{
  "type": "object",
  "properties": {
    "lat": {
      "type": "number",
      "minimum": -90,
      "maximum": 90,
      "description": "Latitude in decimal degrees, -90 to 90"
    },
    "lon": {
      "type": "number",
      "minimum": -180,
      "maximum": 180,
      "description": "Longitude in decimal degrees, -180 to 180"
    }
  },
  "required": [
    "lat",
    "lon"
  ]
}
🟢get_polygon_stats(coordinates, mode, day, month)

Aggregate statistics (mean, min, max, std) over a polygon area: weather, terrain, hazards, environment, soil, and population. Coordinates are [longitude, latitude] pairs forming a simple ring (no self-intersections). Maximum area depends on plan (free tier: 100 km2, measured on the sphere). Weather units follow the chosen mode, as in get_current_weather, get_weather_forecast and get_historical_climate. Use for area questions such as average slope of a farm or population inside a zone.

Input Schema

{
  "type": "object",
  "properties": {
    "coordinates": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "type": "number"
        },
        "minItems": 2,
        "maxItems": 2
      },
      "minItems": 3,
      "description": "[[lon, lat], ...] polygon ring (closed or open)"
    },
    "mode": {
      "type": "string",
      "enum": [
        "nowcast",
        "forecast",
        "historical"
      ],
      "default": "nowcast",
      "description": "Weather source: nowcast for current conditions (GFS), forecast for a forecast day (set day), historical for 2015-2024 ERA5 averages (set month, or omit it for the annual climate)"
    },
    "day": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Forecast day for mode=forecast, 0-based (0 is the first forecast day, the day after the GFS run date). forecast_dates in the response lists all available days"
    },
    "month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 12,
      "description": "Month 1-12 for mode=historical. Omit it for the annual climate"
    }
  },
  "required": [
    "coordinates"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools
verifiedversion not recorded9 tools