addrbookFor publishers
← The evidence ledger

Evidence row 291124

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 94550461-31f8-490c-9b3f-23387053b1f5
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
d02a199c256c446bb2aeb71d5b08dd2015557d8b3740c33c82542972dac377b7
Leaf
0xa8c9b565dd9b3615ba660dfb730f8a5c99d95ada8ed404e35a60c20b3a793ff8

What was observed

{
  "count": 16,
  "tools": [
    {
      "description": "Runs a tool find_tools lists, by name: same price, limits and result as calling it directly. Tools already in your list are called directly, not through this. `arguments` follows that tool's input schema.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "arguments": {
            "additionalProperties": {},
            "description": "That tool's arguments.",
            "properties": {},
            "type": "object"
          },
          "tool": {
            "description": "Tool name, from find_tools.",
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "tool"
        ],
        "type": "object"
      },
      "name": "call_tool"
    },
    {
      "description": "A dataset's variables (standard names, units, display units, categories, bands), horizon, step, cadence, freshness, cost class and an example_query for query_dataset. Example: {\"dataset_id\": \"nbm_conus\"}.",
      "inputSchema": {
        "properties": {
          "dataset_id": {
            "description": "Pipeline dataset identifier (e.g. \"nbm_conus\", \"mrms_reflectivity_conus\"). Discover valid values with list_datasets; inspect variables with describe_dataset.",
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "dataset_id"
        ],
        "type": "object"
      },
      "name": "describe_dataset"
    },
    {
      "description": "Lists the weather tools this connection does not show (best times, comparisons, forecast totals, air quality; station observations, soundings, hurricane recon; lightning, storm cells, storm reports; outlooks, forecaster text, hurricanes; climate records and normals; forecast accuracy; maps and charts; people at risk; crop heat units), with when to use each and its required arguments. Run one with call_tool, in this session, no reconnect. With `tools`, returns their full input schemas. Free; no network call.",
      "inputSchema": {
        "properties": {
          "tools": {
            "description": "Tool names: return their full input schemas instead of the list.",
            "items": {
              "maxLength": 64,
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "find_tools"
    },
    {
      "description": "NWS watches, warnings, advisories. Point (city/ZIP/lat+lon): containing polygons. BBox or US state/DC/CONUS (codes, full names, US/national): intersecting polygons. A city miss is not a statewide all-clear — query the state or a bbox; never say regional inventory is impossible. NY/WA and \"New York State\"/\"Washington State\" are states; \"New York\"/\"Washington\" stay cities. Omit at for now; at (ISO-8601 UTC) is the snapshot then. Empty = all-clear or purged (~24h). alert_id = detail+geometry, ignores at. Ex: {\"location\":\"WI\",\"events\":[\"Tornado Warning\"]}.",
      "inputSchema": {
        "properties": {
          "alert_id": {
            "description": "Alert identifier for detail mode. When set, location is ignored.",
            "type": "string"
          },
          "at": {
            "description": "ISO-8601 UTC past instant for the in-effect snapshot. Ignored with alert_id.",
            "type": "string"
          },
          "bbox": {
            "description": "Bounding box {west,south,east,north}; west/east are negative in the US. Skips geocoding; intersecting polygons.",
            "properties": {
              "east": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              },
              "north": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "south": {
                "maximum": 90,
                "minimum": -90,
                "type": "number"
              },
              "west": {
                "maximum": 180,
                "minimum": -180,
                "type": "number"
              }
            },
            "required": [
              "west",
              "south",
              "east",
              "north"
            ],
            "type": "object"
          },
          "events": {
            "description": "Optional event-name filter, e.g. [\"Tornado Warning\"].",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "location": {
            "description": "Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_alerts"
    },
    {
      "description": "Current weather right now at a location from two independent sources in one call: the RTMA gridded analysis (exact-point values, updated sub-hourly) and the nearest METAR station observation (ground truth with raw METAR, flight category). Use the analysis for point-accurate values and the station for verification. Analysis fields: temperature_2m, dew_point_2m, relative_humidity_2m (derived here from temperature and dew point; listed in analysis.derived), wind_speed_10m, wind_direction_10m, wind_gusts_10m, surface_pressure (station pressure at ground level, not sea-level pressure), visibility, cloud_cover, cloud_ceiling, in units (labels in analysis.unit_labels). nearest_station is the station's own report, unconverted. For a forecast, use get_forecast. Example: {\"location\": \"Pella, IA\"}.",
      "inputSchema": {
        "properties": {
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "location": {
            "description": "Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "units": {
            "default": "imperial",
            "description": "imperial (default; °F, mph, inHg, mi, ft) or metric (°C, km/h, hPa, km, m); si returns K, m/s, Pa, m. si is deprecated and will be removed; use metric. Not applied to nearest_station.",
            "enum": [
              "imperial",
              "metric",
              "si"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_current_conditions"
    },
    {
      "description": "Complete weather overview for a location: current conditions, daily forecast (SPC threats, severity; view \"detailed\" adds CAPE, UV, full day/night periods), active alerts, and outlooks in one call. Pre-aggregated across NBM, HRRR, GFS, RTMA, and SPC and unit-converted server-side. Primary weather tool; reach for lower-level tools only when you need raw observations or a specific dataset. Times are UTC ISO 8601; quote daily[].astro.local to users, not UTC. If forecast.location.timezone_resolved is false, zone unknown: state times as UTC, never as local. Accepts a place name directly. Examples: {\"location\": \"Denver, CO\"} or {\"location\": \"Portland, OR\", \"days\": 5} or {\"lat\": 41.4, \"lon\": -92.9}.",
      "inputSchema": {
        "properties": {
          "days": {
            "default": 10,
            "description": "Number of forecast days (1-14). Default 10.",
            "maximum": 14,
            "minimum": 1,
            "type": "integer"
          },
          "detail_level": {
            "description": "Deprecated alias of view.",
            "enum": [
              "standard",
              "detailed"
            ],
            "type": "string"
          },
          "include": {
            "default": "current,daily,alerts,outlooks",
            "description": "Comma-separated sections: current, daily, hourly, alerts, outlooks. Default \"current,daily,alerts,outlooks\". Use get_hourly_forecast for hourly detail.",
            "type": "string"
          },
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "location": {
            "description": "Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "units": {
            "default": "imperial",
            "description": "Units of every value in and out: imperial (default; °F, mph, in) or metric (°C, km/h, mm). si is deprecated and will be removed; use metric.",
            "enum": [
              "imperial",
              "metric",
              "si"
            ],
            "type": "string"
          },
          "view": {
            "description": "concise (default; REST's is detailed), ~5-10KB: daily has day_precip_probability / night_precip_probability (precip_probability is their max). detailed, ~12-20KB: adds CAPE, UV, full day/night periods, extra hourly fields.",
            "enum": [
              "concise",
              "detailed"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_forecast"
    },
    {
      "description": "NBM probabilistic guidance for one weather aspect: percentiles (p10-p90), exceedance probabilities and ensemble spread. Use this for any question about odds, ranges, potential or confidence (\"how much could we get\", \"range of possible highs\", \"how sure is this\") -- a deterministic forecast value cannot answer one. Reading the percentiles: p50 is the most likely outcome, p90 is the reasonable worst case when the risk is the high end (snow totals, wind, rainfall), and p10 when the risk is the low end (cold, visibility, ceiling). A single percentile is not the forecast -- report the likely value with the tail that matters, and label which is which. Aspects: precip (PoP, QPF + percentiles), snow (accumulation percentiles, >1/2/4in probabilities, snow level, snow-type probability), ice (ice accretion, freezing-rain / ice-pellet probabilities), temperature (`daily` high/low p10/p50/p90: the NBM value -/+ 1.28 stddev; hourly temp + stddev), wind (speed/gust percentiles), severe (thunderstorm probability plus NBM CWASP, a severe-environment index, both in percent: severe_weather_prob_p50 is the median CWASP value and severe_weather_prob_above_75 the probability CWASP exceeds 75; NBM has no tornado, hail or damaging-wind odds; SPC's: get_outlooks (guidance) hazard=severe), aviation (LIFR/IFR/MVFR visibility + ceiling odds), confidence (ensemble stddev; low = settled, high = details still in play). Labels in unit_labels. Example: {\"location\": \"Denver, CO\", \"aspect\": \"snow\", \"hours\": 72}.",
      "inputSchema": {
        "properties": {
          "aspect": {
            "description": "Distribution family (see description).",
            "enum": [
              "precip",
              "snow",
              "ice",
              "temperature",
              "wind",
              "severe",
              "aviation",
              "confidence"
            ],
            "type": "string"
          },
          "hours": {
            "description": "Forecast hours; default 48-72 by aspect.",
            "maximum": 264,
            "minimum": 1,
            "type": "integer"
          },
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "location": {
            "description": "Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "units": {
            "default": "imperial",
            "description": "imperial (default; °F, mph, in) or metric. si is deprecated and will be removed; use metric.",
            "enum": [
              "imperial",
              "metric",
              "si"
            ],
            "type": "string"
          }
        },
        "required": [
          "aspect"
        ],
        "type": "object"
      },
      "name": "get_forecast_distribution"
    },
    {
      "description": "Blended hourly forecast: temperature, feels-like, humidity, wind, precipitation probability/amount, conditions, and icon per hour. hourly[0] is the current or next hour; hourly_coverage.first_time says which. Timestamps are UTC ISO 8601; convert to the local timezone before presenting. Ask for the days you need up front -- one call with days: 4 beats four calls. ALWAYS check hourly_coverage before answering about a specific hour: it reports first_time and last_time (the window the rows actually span), sample_interval_hours (past the first day rows are every 2-3h, not every hour), and truncated: true when upstream returned less than you asked for. If the hour the user cares about is after last_time, say the forecast does not reach that far yet rather than answering from the nearest row you do have. For one stretch of time ask for that stretch with hours_from/hours_to: it comes back hour by hour even where the full range would be sampled. Accepts a place name or coordinates. Examples: {\"location\": \"Portland, OR\", \"days\": 2} or {\"lat\": 41.88, \"lon\": -87.63, \"hours_from\": 36, \"hours_to\": 48}.",
      "inputSchema": {
        "properties": {
          "days": {
            "default": 2,
            "description": "Days of hourly data (1-7). Default 2. Widened when hours_to reaches further.",
            "maximum": 7,
            "minimum": 1,
            "type": "integer"
          },
          "detail_level": {
            "description": "Deprecated alias of view.",
            "enum": [
              "standard",
              "detailed"
            ],
            "type": "string"
          },
          "hours_from": {
            "description": "Window start, in hours from now (0 = the current hour).",
            "maximum": 168,
            "minimum": 0,
            "type": "integer"
          },
          "hours_to": {
            "description": "Window end, in hours from now, exclusive. 36 to 48 is hours 36-47.",
            "maximum": 168,
            "minimum": 1,
            "type": "integer"
          },
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "location": {
            "description": "Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "units": {
            "default": "imperial",
            "description": "Units of every value in and out: imperial (default; °F, mph, in) or metric (°C, km/h, mm). si is deprecated and will be removed; use metric.",
            "enum": [
              "imperial",
              "metric",
              "si"
            ],
            "type": "string"
          },
          "view": {
            "description": "concise (default) samples past 24h; detailed adds CAPE, ceiling, UV, gust and thunderstorm probability for 48h.",
            "enum": [
              "concise",
              "detailed"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_hourly_forecast"
    },
    {
      "description": "How much rain fell: observed precipitation totals at a location. Use for \"did it rain\", \"how much rain fell\", \"rain in the last 24 hours / since yesterday\". Source: MRMS MultiSensor QPE Pass2 (radar bias-corrected to rain gauges) over 1/3/6/24/48/72 h windows (CONUS; 1 h only in Alaska and Hawaii). Values have about 2 mm (0.08 in) resolution, so 0 means under about 1 mm; data runs about an hour behind real time. Pass `at` (within 33 h) for totals ending at a past time (newest frame up to 3 h before it). With include_nowcast (default) it also returns a next-hour radar nowcast (CONUS): peak intensity (light/moderate/heavy), type and start time, not an amount. Forecast totals past the next hour: get_period_totals (planning); station reports: get_observations (observed).",
      "inputSchema": {
        "properties": {
          "at": {
            "description": "RFC3339 end time within the last 33 h. Default: latest.",
            "format": "date-time",
            "type": "string"
          },
          "include_nowcast": {
            "default": true,
            "description": "Next-hour radar nowcast (CONUS; ignored with `at`).",
            "type": "boolean"
          },
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "location": {
            "description": "Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "units": {
            "default": "imperial",
            "description": "Units of every value in and out: imperial (default; °F, mph, in) or metric (°C, km/h, mm). si is deprecated and will be removed; use metric.",
            "enum": [
              "imperial",
              "metric",
              "si"
            ],
            "type": "string"
          },
          "windows": {
            "default": [
              "1h",
              "24h"
            ],
            "description": "Accumulation windows ending at the latest frame (or at `at`).",
            "items": {
              "enum": [
                "1h",
                "3h",
                "6h",
                "24h",
                "48h",
                "72h"
              ],
              "type": "string"
            },
            "maxItems": 6,
            "minItems": 1,
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "get_observed_precipitation"
    },
    {
      "description": "Current data-freshness status of the weather platform: overall state, per-source states (ok / degraded / outage / no_signal), open incidents with cause attribution (provider outage vs internal processing delay), and active provider advisories. Use this when a user asks whether data is current, when other tools return surprisingly stale data, or before presenting time-critical weather. If a source is degraded or in outage, tell the user their data may be stale rather than presenting it as live. No inputs. Refreshed about every 5 minutes.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "include_ok": {
            "default": false,
            "description": "true: list every monitored source including healthy ones. false (default): only sources that are not ok, keeping the response compact.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "name": "get_platform_status"
    },
    {
      "description": "Complete temporal context for a location: local time, timezone, 14-day calendar with day names and Today/Tomorrow offsets, sunrise/sunset/solar times (from the weather pipeline's astro product), and moon phase. Use whenever you need to reason about dates, times, or daylight for a location -- including \"what time is sunset?\", \"is it dark there now?\", or \"what day of the week is the 4th-day forecast?\". If current_time.timezone_resolved is false, zone unknown: state times as UTC, never as local. Accepts a place name directly. Example: {\"location\": \"Seattle, WA\"}.",
      "inputSchema": {
        "properties": {
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "location": {
            "description": "Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "get_time_context"
    },
    {
      "description": "Discover the gridded datasets (model grids, analyses) available at a location, or every public one when none is given, keyed by dataset_id. At a point: its domain (CONUS/Alaska/Hawaii) plus global grids, with freshness where tracked (latest model run as latest_run, latest_time, data_age_seconds, freshness_status). Use this to find dataset_id values for query_dataset or check whether data is current. Variables, units and standard names come from describe_dataset. Example: {\"location\": \"Anchorage, AK\"}.",
      "inputSchema": {
        "properties": {
          "include_freshness": {
            "default": true,
            "description": "Include latest model run and data age where tracked. Default true.",
            "type": "boolean"
          },
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "location": {
            "description": "Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both.",
            "maxLength": 200,
            "type": "string"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "list_datasets"
    },
    {
      "description": "Raw time series of one dataset's variables at a point, with unit labels: any gridded product (NBM, HRRR, RRFS, GFS, RTMA, MRMS, air quality, ...). Time modes: hours (default 24), time_start+time_end (ISO 8601), or latest=true (newest value). Up to 168 frames: when truncated, send next_cursor as cursor with the same arguments. reference_time pins a model run; each series reports its run (reference_time, or reference_times when runs mix); runs older than about 48 h may be gone. For blended forecasts use get_forecast. Examples: {\"location\": \"Denver, CO\", \"dataset_id\": \"rrfs_surface\", \"variables\": [\"temperature_2m\"], \"hours\": 18} or {\"lat\": 41.4, \"lon\": -92.9, \"dataset_id\": \"rtma_conus\", \"variables\": [\"temperature_2m\"], \"latest\": true}.",
      "inputSchema": {
        "properties": {
          "cursor": {
            "description": "next_cursor of the previous page.",
            "type": "string"
          },
          "dataset_id": {
            "description": "Default: the NBM dataset for the location (nbm_conus/nbm_alaska/nbm_hawaii). Discover with list_datasets.",
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "hours": {
            "description": "Hours from now (1-264): ahead, or back on analyses (default: newest 166 frames); from the run start with reference_time.",
            "maximum": 264,
            "minimum": 1,
            "type": "integer"
          },
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "latest": {
            "default": false,
            "description": "Only the newest value (analyses like RTMA/MRMS).",
            "type": "boolean"
          },
          "location": {
            "description": "Free-text place: \"City, ST\" (e.g. \"Portland, OR\"), US ZIP, venue/address where enabled, or \"lat,lon\". Use this OR lat+lon, not both.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "reference_time": {
            "description": "Pin a specific model run (ISO 8601). Default: latest run.",
            "type": "string"
          },
          "time_end": {
            "description": "ISO 8601 window end (with time_start).",
            "type": "string"
          },
          "time_start": {
            "description": "ISO 8601 window start (with time_end).",
            "type": "string"
          },
          "units": {
            "default": "imperial",
            "enum": [
              "imperial",
              "metric"
            ],
            "type": "string"
          },
          "variables": {
            "description": "Standard names (e.g. temperature_2m, precipitation); see describe_dataset.",
            "items": {
              "type": "string"
            },
            "maxItems": 20,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "variables"
        ],
        "type": "object"
      },
      "name": "query_dataset"
    },
    {
      "description": "Resolve coordinates to a human-readable place (city, state, county, timezone). Use when you have lat/lon but need a display name or the local timezone. Example: {\"lat\": 39.74, \"lon\": -104.99} -> Denver, Colorado, America/Denver.",
      "inputSchema": {
        "properties": {
          "lat": {
            "description": "Latitude in decimal degrees (-90 to 90). Most tools also accept a `location` place-name string instead of lat/lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "lon": {
            "description": "Longitude in decimal degrees (-180 to 180). For continental US use negative values (west of the prime meridian).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          }
        },
        "required": [
          "lat",
          "lon"
        ],
        "type": "object"
      },
      "name": "reverse_geocode"
    },
    {
      "description": "Find which dataset answers a weather question when no dedicated tool fits: ranks the data catalog (model grids, radar, satellite, outlooks, observations) by the question's words and returns the best datasets with variable, units, cadence, a one-line why and the exact `call` (tool and arguments) to run next. Pass lat/lon, or `domain`, to keep only datasets covering the place; without one, Alaska/Hawaii twins fold into the CONUS dataset. Calls are ready for \"now\"; for a past time set `time_start`/`time_end` (or `at` where the tool supports it). Free; no network call.",
      "inputSchema": {
        "properties": {
          "domain": {
            "description": "Coverage filter when there is no point; not with lat/lon.",
            "enum": [
              "conus",
              "alaska",
              "hawaii",
              "carib",
              "global"
            ],
            "type": "string"
          },
          "family": {
            "description": "Only this source family (e.g. \"nbm\", \"mrms\").",
            "maxLength": 40,
            "type": "string"
          },
          "kind": {
            "description": "Only this dataset kind.",
            "enum": [
              "grid",
              "snapshot",
              "feature",
              "text"
            ],
            "type": "string"
          },
          "lat": {
            "description": "Latitude of the place (with lon).",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "limit": {
            "default": 5,
            "description": "Hits to return (1-10, default 5).",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "lon": {
            "description": "Longitude of the place (with lat).",
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "query": {
            "description": "The question or keywords, in the user's words.",
            "maxLength": 200,
            "minLength": 2,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_catalog"
    },
    {
      "description": "Resolve a place to ranked candidates with lat/lon: city (\"Denver\"), \"city, ST\", ZIP (\"50219\"), or partial input with fuzzy=true (\"bost\" -> Boston); venues and addresses where enabled. Rows carry `type` place|zip|address|poi; pass a row's lat/lon to weather tools. `matched_via: \"autosuggest\"` marks rows found after the exact match missed; `partial` means a section timed out. Weather tools take `location` directly, venues included -- use this to disambiguate (\"which Springfield?\") or present choices.",
      "inputSchema": {
        "properties": {
          "fuzzy": {
            "default": false,
            "description": "Autosuggest mode for partial/misspelled input. Default false (exact search).",
            "type": "boolean"
          },
          "limit": {
            "default": 5,
            "description": "Maximum candidates to return (1-10). Default 5.",
            "maximum": 10,
            "minimum": 1,
            "type": "integer"
          },
          "near_lat": {
            "description": "Rank venues/addresses near this point; pair with near_lon.",
            "maximum": 90,
            "minimum": -90,
            "type": "number"
          },
          "near_lon": {
            "maximum": 180,
            "minimum": -180,
            "type": "number"
          },
          "query": {
            "description": "Place query: city, \"city, state\", ZIP, partial text, or venue/address where enabled.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_locations"
    }
  ]
}

What the leaf hashes

{"body":"d02a199c256c446bb2aeb71d5b08dd2015557d8b3740c33c82542972dac377b7","id":291124,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793047880619054,"prev":null,"subject":"94550461-31f8-490c-9b3f-23387053b1f5","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0xa8c9f87ea559912ff92ba922074cacf994872db6a3c623a15c2b0264c9f7f380
  2. 0xc07ede4a848b5fe74d451e4b8d0f6770af2f90ffe82844251a4ddad1ebdd6613
  3. 0x816d0a5f76e345144fec57dc612c127cfafa1462778f8c3b3d14ec84656ed1f7
  4. 0x42dabf991a624eba95fe314056dc049dec0352ebbfc1950571d4982dc8243e4f
  5. 0x8ffdb7a6a8a3580c071ba10a8a9c4c3d58ee600850a8ebc56c0ac0bc309e58a6
  6. 0x7d282158fa914dbc3c4aa350ca06835afd890268a19580cc303be9ed00eb21c0
  7. 0xc2f9338876ca93bec22501a105785b2ea36da6290dcc5f973dda9bd9a9912466
  8. 0xc06ebd139c7e04ba4287e0d670cfac5fa22955611e9f5168e294293463d96e14
  9. 0xc8495fd79f15548d59248d3bd550a134a862eb1298bf9b7f67ba0fee2cce6b3b
  10. 0x59283b4f1957eed1ca397cea7a54cad8fd28e2488fdbd3f14185468ebe1209e1
  11. 0xcc46e37d035d0d90e3d86104e55f155ffacd1530f11ceef85fa02db50beb78a5
  12. 0xb31654882cc5704ae07fa6a4ad12ef5516ea95a5ec8b5affdbdbec199402e29a
  13. 0x292ebdce6b8d3d7ef08ad646a0fd97dee9313ab55c1a350807d9f3013794c37a
  14. 0x428106f4ae4ec142f17aebf6fa50935242f8d3f1c211cf95d6351d03d11da2b7
  15. 0x62a900133713919f4eed33d8336876b7a6d538233b8a4f3ed03b29aa44f5bad0
  16. 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON