Skip to main content
Glama

earthquake-mcp-server

Get Earthquake Event Detail

earthquake_get_event
Read-onlyIdempotent

Fetch one earthquake by event ID: a USGS ID, or an EMSC ID (an origin date and seven-digit sequence, e.g. "20190706_0000043"). Returns the same normalized event a search result carries. For a USGS event it adds a projection of the analysis products only the single-event response holds: PAGER impact alert and report link, ShakeMap peak intensity and ground motion, DYFI felt-report totals, the moment-tensor focal mechanism, landslide and liquefaction alerts, origin quality (azimuthal gap, station count, location uncertainty, depth type), and finite-fault rupture dimensions. Product groups are omitted when no projected field is available — a small automatic event typically carries only origin quality, while a large reviewed one has most of it. Opt into more with include: alternative origin solutions, magnitude solutions, phase arrivals, the USGS aftershock forecast, or the PAGER loss estimates behind the alert with population exposure by shaking intensity; a requested group that is not returned is listed in unavailable_includes. EMSC publishes none of these products, so an EMSC event has no detail and lists every requested group as not_published. Event IDs appear in the "id" field of earthquake_get_feed and earthquake_search_events results; a USGS event's associated_ids are also accepted.

Input Schema

NameRequiredDescriptionDefault
includeNoOptional groups: origins (every contributed origin solution, no extra request), magnitudes and arrivals (one shared phase-data download; every arrival of the preferred origin, nearest first), aftershock_forecast (one extra request), pager (fatality and economic-loss brackets with probabilities, and people exposed at each intensity by country; two or three extra requests). Omit for the default response.
event_idYesUSGS event ID, e.g. "hv74966427" or "us6000sznj", or EMSC event ID, e.g. "20190706_0000043". Found in the "id" field of earthquake_get_feed and earthquake_search_events results.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when the call failed. Absent on success.
eventNoFull earthquake event detail.
pagerNoUSGS PAGER loss estimates and population exposure; values change with each PAGER update.
detailNoProjected USGS analysis products. Absent when no projected field is available; absence does not mean impact was zero.
originsNoEvery origin product, preferred first. Present when requested and published.
arrivalsNoAll phase arrivals of the preferred origin, sorted by distance ascending.
magnitudesNoMagnitude solutions from the preferred phase-data product, in document order.
aftershock_forecastNoUSGS Operational Aftershock Forecast; probabilities change with each update.
unavailable_includesNoRequested groups not returned, with the reason. Absent when all were returned.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • changedInput schema / properties / include / description
      Previous value: -"Optional groups: origins (every contributed origin solution, no extra request), magnitudes and arrivals (one shared phase-data download; every arrival of the preferred origin, nearest first), aftershock_forecast (one extra request). Omit for the default response."New value: +"Optional groups: origins (every contributed origin solution, no extra request), magnitudes and arrivals (one shared phase-data download; every arrival of the preferred origin, nearest first), aftershock_forecast (one extra request), pager (fatality and economic-loss brackets with probabilities, and people exposed at each intensity by country; two or three extra requests). Omit for the default response."
    • changedInput schema / properties / include / items / enum
      Previous value: -[
      -  "origins",
      -  "magnitudes",
      -  "arrivals",
      -  "aftershock_forecast"
      -]New value: +[
      +  "origins",
      +  "magnitudes",
      +  "arrivals",
      +  "aftershock_forecast",
      +  "pager"
      +]
    • changedOutput schema / properties / detail / properties / losspager / description
      Previous value: -"PAGER assessment; fatality/economic-loss brackets are in report_url, not this projection. Absent without projected fields."New value: +"PAGER alert and report link. The fatality and economic-loss brackets behind the alert, and population exposure, come from the pager include group of earthquake_get_event. Absent without projected fields."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `event_deleted`: USGS reports that the requested event was deleted. `not_found`: No USGS or EMSC event matches the provided event_id. `source_unavailable`: The USGS or EMSC event API returns a 5xx, serves HTML, or is unreachable. `source_timeout`: The USGS or EMSC event API did not answer before the request deadline. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `event_deleted`: USGS reports that the requested event was deleted. `not_found`: No USGS or EMSC event matches the provided event_id. `source_unavailable`: The USGS or EMSC event API returns a 5xx, serves HTML or an unreadable body, or is unreachable. `source_timeout`: The USGS or EMSC event API did not answer before the request deadline. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / event / properties / mmi / description
      Previous value: -"Maximum ShakeMap Modified Mercalli intensity (0–12); null without a ShakeMap or for EMSC."New value: +"Maximum ShakeMap Modified Mercalli intensity (1–12); null without a ShakeMap, when the ShakeMap computed no intensity, or for EMSC."
    • changedOutput schema / properties / event / properties / status / description
      Previous value: -"Review state: automatic (unverified), reviewed (analyst checked), or deleted. Null if unpublished (EMSC); such solutions remain unverified and subject to revision."New value: +"Review state: automatic (unverified), reviewed (analyst checked), or deleted. Null if unpublished (EMSC, or a USGS record without one of these values); such solutions remain unverified and subject to revision."
    • addedOutput schema / properties / pager
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "USGS PAGER loss estimates and population exposure; values change with each PAGER update.",
      +  "properties": {
      +    "economic": {
      +      "additionalProperties": false,
      +      "description": "Estimated economic losses.",
      +      "properties": {
      +        "bins": {
      +          "description": "Every bracket in upstream order.",
      +          "items": {
      +            "additionalProperties": false,
      +            "description": "One probability bracket.",
      +            "properties": {
      +              "color": {
      +                "description": "Alert color of this bracket. Absent when unpublished.",
      +                "type": "string"
      +              },
      +              "max": {
      +                "description": "Upper bound, exclusive, in millions of USD.",
      +                "type": "number"
      +              },
      +              "min": {
      +                "description": "Lower bound, inclusive, in millions of USD.",
      +                "type": "number"
      +              },
      +              "probability": {
      +                "description": "Probability (0–1) that the outcome falls in this bracket.",
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "min",
      +              "max",
      +              "probability"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "level": {
      +          "description": "Alert level this estimate sets — \"green\", \"yellow\", \"orange\", or \"red\"; the event alert is the higher of the two estimates. Absent when unpublished.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "bins"
      +      ],
      +      "type": "object"
      +    },
      +    "exposure": {
      +      "additionalProperties": false,
      +      "description": "Estimated population exposed to each shaking intensity.",
      +      "properties": {
      +        "countries": {
      +          "description": "Every country row in published order, all-zero rows included; empty when PAGER lists none.",
      +          "items": {
      +            "additionalProperties": false,
      +            "description": "One country row.",
      +            "properties": {
      +              "country_code": {
      +                "description": "Two-letter country code as PAGER publishes it; \"UK\" marks areas assigned to no country, not the United Kingdom (GB).",
      +                "type": "string"
      +              },
      +              "population": {
      +                "description": "Estimated people exposed at each intensity in this country.",
      +                "items": {
      +                  "type": "number"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "required": [
      +              "country_code",
      +              "population"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "mmi": {
      +          "description": "Modified Mercalli intensity of each column, in published order.",
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        },
      +        "population": {
      +          "description": "Estimated people exposed at each intensity, all areas combined.",
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "mmi",
      +        "population",
      +        "countries"
      +      ],
      +      "type": "object"
      +    },
      +    "fatality": {
      +      "additionalProperties": false,
      +      "description": "Estimated shaking-related fatalities.",
      +      "properties": {
      +        "bins": {
      +          "description": "Every bracket in upstream order.",
      +          "items": {
      +            "additionalProperties": false,
      +            "description": "One probability bracket.",
      +            "properties": {
      +              "color": {
      +                "description": "Alert color of this bracket. Absent when unpublished.",
      +                "type": "string"
      +              },
      +              "max": {
      +                "description": "Upper bound, exclusive, in deaths.",
      +                "type": "number"
      +              },
      +              "min": {
      +                "description": "Lower bound, inclusive, in deaths.",
      +                "type": "number"
      +              },
      +              "probability": {
      +                "description": "Probability (0–1) that the outcome falls in this bracket.",
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "min",
      +              "max",
      +              "probability"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "level": {
      +          "description": "Alert level this estimate sets — \"green\", \"yellow\", \"orange\", or \"red\"; the event alert is the higher of the two estimates. Absent when unpublished.",
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "bins"
      +      ],
      +      "type": "object"
      +    },
      +    "impact": {
      +      "description": "PAGER impact statements in published order; absent when none is published.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "fatality",
      +    "economic",
      +    "exposure"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / unavailable_includes / items / properties / group / enum
      Previous value: -[
      -  "origins",
      -  "magnitudes",
      -  "arrivals",
      -  "aftershock_forecast"
      -]New value: +[
      +  "origins",
      +  "magnitudes",
      +  "arrivals",
      +  "aftershock_forecast",
      +  "pager"
      +]
    • changedOutput schema / properties / unavailable_includes / items / properties / reason / description
      Previous value: -"not_published: the event has no product for it. fetch_failed: the product exists but could not be fetched or parsed."New value: +"not_published: the event has no product for it, or its product lacks the files the group reads. fetch_failed: the product exists but could not be fetched or parsed."
  2. Changed10 schema fields changed
    • changedInput schema / properties / event_id / description
      Previous value: -"USGS event ID, e.g. \"hv74966427\" or \"us6000sznj\". Found in the \"id\" field of earthquake_get_feed and earthquake_search_events results."New value: +"USGS event ID, e.g. \"hv74966427\" or \"us6000sznj\", or EMSC event ID, e.g. \"20190706_0000043\". Found in the \"id\" field of earthquake_get_feed and earthquake_search_events results."
    • addedInput schema / properties / include
      Added value: +{
      +  "description": "Optional groups: origins (every contributed origin solution, no extra request), magnitudes and arrivals (one shared phase-data download; every arrival of the preferred origin, nearest first), aftershock_forecast (one extra request). Omit for the default response.",
      +  "items": {
      +    "enum": [
      +      "origins",
      +      "magnitudes",
      +      "arrivals",
      +      "aftershock_forecast"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / aftershock_forecast
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "USGS Operational Aftershock Forecast; probabilities change with each update.",
      +  "properties": {
      +    "advisory_window": {
      +      "description": "Window USGS headlines in its advisory, e.g. \"1 Week\".",
      +      "type": "string"
      +    },
      +    "created": {
      +      "description": "ISO 8601 UTC time the forecast was issued.",
      +      "type": "string"
      +    },
      +    "expires": {
      +      "description": "ISO 8601 UTC expiry of the forecast.",
      +      "type": "string"
      +    },
      +    "next_update": {
      +      "description": "ISO 8601 UTC time of the next scheduled update; absent once updates stop.",
      +      "type": "string"
      +    },
      +    "windows": {
      +      "description": "Forecast windows in upstream order.",
      +      "items": {
      +        "additionalProperties": false,
      +        "description": "One forecast window.",
      +        "properties": {
      +          "above_mainshock": {
      +            "additionalProperties": false,
      +            "description": "Chance of an aftershock as large as the mainshock; absent when unpublished.",
      +            "properties": {
      +              "magnitude": {
      +                "description": "Mainshock magnitude.",
      +                "type": "number"
      +              },
      +              "probability": {
      +                "description": "Probability (0–1) of an aftershock at or above the mainshock magnitude.",
      +                "type": "number"
      +              }
      +            },
      +            "required": [
      +              "magnitude",
      +              "probability"
      +            ],
      +            "type": "object"
      +          },
      +          "bins": {
      +            "description": "Magnitude bins in upstream order.",
      +            "items": {
      +              "additionalProperties": false,
      +              "description": "One magnitude bin.",
      +              "properties": {
      +                "count_median": {
      +                  "description": "Median expected count.",
      +                  "type": "number"
      +                },
      +                "count_p95_max": {
      +                  "description": "Upper bound of the 95% count range.",
      +                  "type": "number"
      +                },
      +                "count_p95_min": {
      +                  "description": "Lower bound of the 95% count range.",
      +                  "type": "number"
      +                },
      +                "magnitude": {
      +                  "description": "Minimum magnitude of this bin.",
      +                  "type": "number"
      +                },
      +                "probability": {
      +                  "description": "Probability (0–1) of at least one aftershock at or above it.",
      +                  "type": "number"
      +                }
      +              },
      +              "required": [
      +                "magnitude",
      +                "probability"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "end": {
      +            "description": "ISO 8601 UTC window end.",
      +            "type": "string"
      +          },
      +          "label": {
      +            "description": "Window label, e.g. \"1 Day\", \"1 Week\".",
      +            "type": "string"
      +          },
      +          "start": {
      +            "description": "ISO 8601 UTC window start (the forecast issue time, not now).",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "label",
      +          "start",
      +          "end",
      +          "bins"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "advisory_window",
      +    "created",
      +    "expires",
      +    "windows"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / arrivals
      Added value: +{
      +  "description": "All phase arrivals of the preferred origin, sorted by distance ascending.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "One phase arrival joined to its pick.",
      +    "properties": {
      +      "azimuth_deg": {
      +        "description": "Azimuth from epicenter to station, degrees.",
      +        "type": "number"
      +      },
      +      "channel": {
      +        "description": "SEED channel code.",
      +        "type": "string"
      +      },
      +      "distance_deg": {
      +        "description": "Epicentral distance, degrees.",
      +        "type": "number"
      +      },
      +      "location": {
      +        "description": "SEED location code as published; \"\" and \"--\" both mean blank.",
      +        "type": "string"
      +      },
      +      "network": {
      +        "description": "SEED network code.",
      +        "type": "string"
      +      },
      +      "phase": {
      +        "description": "Phase name, e.g. P, Pn, S.",
      +        "type": "string"
      +      },
      +      "station": {
      +        "description": "SEED station code.",
      +        "type": "string"
      +      },
      +      "time": {
      +        "description": "ISO 8601 UTC pick time.",
      +        "type": "string"
      +      },
      +      "time_residual_s": {
      +        "description": "Travel-time residual, seconds.",
      +        "type": "number"
      +      },
      +      "time_weight": {
      +        "description": "Weight of the arrival time in the location.",
      +        "type": "number"
      +      }
      +    },
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / detail / properties / origin / properties / depth_type
      Added value: +{
      +  "description": "How the depth was set, as published, e.g. \"from location\" or \"operator assigned\" (fixed, not solved for).",
      +  "type": "string"
      +}
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `event_deleted`: USGS reports that the requested event was deleted. `not_found`: No event matches the provided event_id. `source_unavailable`: The USGS event API returns a 5xx, serves HTML, or is unreachable. `source_timeout`: The USGS event API did not answer before the request deadline. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `event_deleted`: USGS reports that the requested event was deleted. `not_found`: No USGS or EMSC event matches the provided event_id. `source_unavailable`: The USGS or EMSC event API returns a 5xx, serves HTML, or is unreachable. `source_timeout`: The USGS or EMSC event API did not answer before the request deadline. Other values are possible when a failure originates below the handler."
    • addedOutput schema / properties / event / properties / associated_ids
      Added value: +{
      +  "description": "Other network IDs USGS lists for this event, in upstream order; earthquake_get_event accepts them. Absent when USGS lists none, and for EMSC events.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / magnitudes
      Added value: +{
      +  "description": "Magnitude solutions from the preferred phase-data product, in document order.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "One event-level magnitude solution.",
      +    "properties": {
      +      "agency": {
      +        "description": "Agency that computed the magnitude.",
      +        "type": "string"
      +      },
      +      "evaluation_mode": {
      +        "description": "QuakeML evaluation mode: manual or automatic.",
      +        "type": "string"
      +      },
      +      "evaluation_status": {
      +        "description": "QuakeML evaluation status, e.g. reviewed.",
      +        "type": "string"
      +      },
      +      "is_preferred": {
      +        "description": "True for the document's preferred magnitude.",
      +        "type": "boolean"
      +      },
      +      "station_count": {
      +        "description": "Stations contributing to this magnitude.",
      +        "type": "number"
      +      },
      +      "type": {
      +        "description": "Magnitude type, e.g. Mww, mb, Ml.",
      +        "type": "string"
      +      },
      +      "value": {
      +        "description": "Magnitude value.",
      +        "type": "number"
      +      }
      +    },
      +    "required": [
      +      "is_preferred"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / origins
      Added value: +{
      +  "description": "Every origin product, preferred first. Present when requested and published.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "One origin solution from an origin product.",
      +    "properties": {
      +      "azimuthal_gap_deg": {
      +        "description": "Largest azimuthal gap, degrees.",
      +        "type": "number"
      +      },
      +      "depth_error_km": {
      +        "description": "Depth uncertainty, km.",
      +        "type": "number"
      +      },
      +      "depth_km": {
      +        "description": "Hypocenter depth, km.",
      +        "type": "number"
      +      },
      +      "depth_type": {
      +        "description": "How the depth was set, as published, e.g. \"from location\" or \"operator assigned\".",
      +        "type": "string"
      +      },
      +      "evaluation_status": {
      +        "description": "QuakeML evaluation status, e.g. final.",
      +        "type": "string"
      +      },
      +      "event_id": {
      +        "description": "Contributing network's ID for the event.",
      +        "type": "string"
      +      },
      +      "horizontal_error_km": {
      +        "description": "Horizontal location uncertainty, km.",
      +        "type": "number"
      +      },
      +      "is_preferred": {
      +        "description": "True for the origin USGS prefers (listed first).",
      +        "type": "boolean"
      +      },
      +      "latitude": {
      +        "description": "Epicenter latitude, decimal degrees.",
      +        "type": "number"
      +      },
      +      "longitude": {
      +        "description": "Epicenter longitude, decimal degrees.",
      +        "type": "number"
      +      },
      +      "magnitude": {
      +        "description": "Magnitude published with this origin.",
      +        "type": "number"
      +      },
      +      "magnitude_type": {
      +        "description": "Magnitude type, e.g. mww, mb, Mi.",
      +        "type": "string"
      +      },
      +      "minimum_distance_deg": {
      +        "description": "Distance to the nearest station, degrees.",
      +        "type": "number"
      +      },
      +      "num_phases_used": {
      +        "description": "Phases used in the location.",
      +        "type": "number"
      +      },
      +      "num_stations_used": {
      +        "description": "Stations used in the location.",
      +        "type": "number"
      +      },
      +      "review_status": {
      +        "description": "Review status as published by the network.",
      +        "type": "string"
      +      },
      +      "source": {
      +        "description": "Network that contributed this origin product.",
      +        "type": "string"
      +      },
      +      "standard_error_s": {
      +        "description": "RMS travel-time residual, seconds.",
      +        "type": "number"
      +      },
      +      "time": {
      +        "description": "ISO 8601 UTC origin time.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "is_preferred"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / unavailable_includes
      Added value: +{
      +  "description": "Requested groups not returned, with the reason. Absent when all were returned.",
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "One requested group that was not returned.",
      +    "properties": {
      +      "group": {
      +        "description": "The requested group.",
      +        "enum": [
      +          "origins",
      +          "magnitudes",
      +          "arrivals",
      +          "aftershock_forecast"
      +        ],
      +        "type": "string"
      +      },
      +      "reason": {
      +        "description": "not_published: the event has no product for it. fetch_failed: the product exists but could not be fetched or parsed.",
      +        "enum": [
      +          "not_published",
      +          "fetch_failed"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "group",
      +      "reason"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  3. Changed36 schema fields changed
    • addedInput schema / properties / event_id / minLength
      Added value: +1
    • changedOutput schema / properties / detail / description
      Previous value: -"Analysis products USGS attached to this event. Absent when the event carries none — that means no product was produced, not that impact was zero."New value: +"Projected USGS analysis products. Absent when no projected field is available; absence does not mean impact was zero."
    • changedOutput schema / properties / detail / properties / dyfi / description
      Previous value: -"Felt-report summary. Absent when no DYFI product exists for the event."New value: +"Felt-report summary. Absent without projected fields."
    • changedOutput schema / properties / detail / properties / dyfi / properties / responses / description
      Previous value: -"Number of \"Did You Feel It?\" reports the public submitted."New value: +"Public DYFI (Did You Feel It?) report count."
    • changedOutput schema / properties / detail / properties / finite_fault / description
      Previous value: -"Finite-fault rupture model. Produced only for large events."New value: +"Finite-fault rupture model for large events; absent without projected fields."
    • changedOutput schema / properties / detail / properties / ground_failure / description
      Previous value: -"Secondary-hazard alert levels. Absent when no ground-failure model was run."New value: +"Secondary-hazard alert levels. Absent without projected fields."
    • changedOutput schema / properties / detail / properties / losspager / description
      Previous value: -"PAGER impact assessment. Estimated fatality and economic-loss brackets live in a separate content file and are not part of this response — fetch report_url for them."New value: +"PAGER assessment; fatality/economic-loss brackets are in report_url, not this projection. Absent without projected fields."
    • changedOutput schema / properties / detail / properties / moment_tensor / description
      Previous value: -"Focal-mechanism solution. Absent for events with no moment-tensor inversion."New value: +"Focal mechanism; absent without projected fields."
    • changedOutput schema / properties / detail / properties / moment_tensor / properties / derived_depth_km / description
      Previous value: -"Centroid depth in kilometers derived from the moment-tensor inversion."New value: +"Moment-tensor centroid depth, km."
    • changedOutput schema / properties / detail / properties / moment_tensor / properties / nodal_plane_1 / description
      Previous value: -"First nodal plane of the focal mechanism. Either plane can be the true fault."New value: +"First nodal plane; either plane may be the fault."
    • changedOutput schema / properties / detail / properties / moment_tensor / properties / nodal_plane_1 / properties / rake / description
      Previous value: -"Slip direction in degrees (-180 to 180). Near 90 is reverse faulting, near -90 normal, near 0 or 180 strike-slip."New value: +"Slip direction, degrees (-180..180): ~90 reverse, ~-90 normal, ~0/180 strike-slip."
    • changedOutput schema / properties / detail / properties / moment_tensor / properties / nodal_plane_2 / description
      Previous value: -"Second nodal plane — the auxiliary solution, indistinguishable from the first on seismic data alone."New value: +"Auxiliary nodal plane; seismic data alone cannot distinguish the true fault."
    • changedOutput schema / properties / detail / properties / moment_tensor / properties / nodal_plane_2 / properties / rake / description
      Previous value: -"Slip direction in degrees (-180 to 180). Near 90 is reverse faulting, near -90 normal, near 0 or 180 strike-slip."New value: +"Slip direction, degrees (-180..180): ~90 reverse, ~-90 normal, ~0/180 strike-slip."
    • changedOutput schema / properties / detail / properties / moment_tensor / properties / scalar_moment_nm / description
      Previous value: -"Scalar seismic moment in newton-metres — the physical size of the rupture."New value: +"Scalar seismic moment, newton-metres."
    • changedOutput schema / properties / detail / properties / origin / description
      Previous value: -"Location-quality metrics for the preferred origin."New value: +"Location-quality metrics for the preferred origin; absent without projected fields."
    • changedOutput schema / properties / detail / properties / origin / properties / azimuthal_gap_deg / description
      Previous value: -"Largest azimuthal gap between stations, in degrees. Gaps above ~180 make the location poorly constrained."New value: +"Largest station azimuthal gap, degrees; >~180 means poorly constrained location."
    • changedOutput schema / properties / detail / properties / origin / properties / review_status / description
      Previous value: -"Review state of the origin solution as the contributing network published it."New value: +"Origin review state published by its network."
    • changedOutput schema / properties / detail / properties / shakemap / description
      Previous value: -"ShakeMap modeled ground-motion summary. Absent when no ShakeMap was produced."New value: +"ShakeMap modeled ground-motion summary. Absent without projected fields."
    • addedOutput schema / properties / detail / properties / shakemap / properties / code_version
      Added value: +{
      +  "description": "ShakeMap producer code version reported by USGS.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / detail / properties / shakemap / properties / max_pga / description
      Previous value: -"Maximum modeled peak ground acceleration, in g — a fraction of standard gravity, as USGS ShakeMap publishes it (0.4 is four tenths of g)."New value: +"Maximum modeled peak ground acceleration, in g (fraction of standard gravity)."
    • changedOutput schema / properties / error / properties / data / properties / reason / description
      Previous value: -"Machine-readable failure mode. Declared by this tool: `not_found`: No event matches the provided event_id. `source_unavailable`: The USGS event API returns a 5xx, serves HTML, or is unreachable. `source_timeout`: The USGS event API did not answer before the request deadline. Other values are possible when a failure originates below the handler."New value: +"Machine-readable failure mode. Declared by this tool: `event_deleted`: USGS reports that the requested event was deleted. `not_found`: No event matches the provided event_id. `source_unavailable`: The USGS event API returns a 5xx, serves HTML, or is unreachable. `source_timeout`: The USGS event API did not answer before the request deadline. Other values are possible when a failure originates below the handler."
    • changedOutput schema / properties / error / properties / data / properties / reason / examples
      Previous value: -[
      -  "not_found",
      -  "source_unavailable",
      -  "source_timeout"
      -]New value: +[
      +  "event_deleted",
      +  "not_found",
      +  "source_unavailable",
      +  "source_timeout"
      +]
    • changedOutput schema / properties / event / properties / alert / description
      Previous value: -"PAGER estimated impact alert level. Null when USGS ran no PAGER assessment, and always null for EMSC, which publishes no such field."New value: +"PAGER estimated impact; null without an assessment or for EMSC."
    • changedOutput schema / properties / event / properties / auth / description
      Previous value: -"Code of the agency or network the source names as authoritative for this solution, e.g. \"NEIC\", \"BMKG\", \"NDI\" from EMSC or \"us\", \"ci\", \"ak\" from USGS. Absent when the source reports none."New value: +"Authoritative agency/network code (EMSC auth or USGS net); absent if unpublished."
    • changedOutput schema / properties / event / properties / cdi / description
      Previous value: -"Maximum reported intensity (Community Decimal Intensity, 0–12 scale), derived from DYFI responses. Null when USGS computed no DYFI intensity, and always null for EMSC, which publishes no such field."New value: +"Maximum DYFI Community Decimal Intensity (0–12); null if uncomputed or unsupported (EMSC)."
    • changedOutput schema / properties / event / properties / depth_km / description
      Previous value: -"Hypocenter depth in kilometers. Shallow (<70 km), intermediate (70–300 km), or deep (>300 km). Null for historical events where depth was not measured."New value: +"Hypocenter depth in km; null if unmeasured."
    • changedOutput schema / properties / event / properties / event_certainty / description
      Previous value: -"How certain the source is of event_type: \"known\" (asserted), \"suspected\", \"unknown\", or \"unreported\". EMSC publishes this as the first character of its event-type code — a suspected explosion is not a confirmed one, and this is the only field that says so. Absent for USGS, which publishes no certainty axis, and absent for an EMSC code outside the published nomenclature."New value: +"EMSC classification certainty: known (asserted), suspected, unknown, or unreported. Suspected is not confirmed. Absent for USGS and unrecognized EMSC codes."
    • changedOutput schema / properties / event / properties / event_type / description
      Previous value: -"What kind of event this is, in one vocabulary whichever source served it — the QuakeML type names USGS publishes (\"earthquake\", \"quarry blast\", \"explosion\", \"ice quake\"). EMSC's two-character code is decoded to the same names, so the same event carries the same value from either source; how sure the source is rides on event_certainty instead. A code outside the published nomenclature is forwarded verbatim rather than guessed at. Not every record in either catalog is a tectonic earthquake. Absent when the source publishes no classification."New value: +"QuakeML classification (earthquake, quarry blast, explosion, etc.). EMSC codes decode to USGS names; unknown codes pass through verbatim. Certainty is separate. Absent if unpublished; either catalog includes non-tectonic events."
    • changedOutput schema / properties / event / properties / felt / description
      Previous value: -"Number of DYFI (Did You Feel It?) responses. Null when USGS has received no reports for the event, and always null for EMSC, which publishes no DYFI field — a null is not evidence the event went unfelt."New value: +"DYFI (Did You Feel It?) response count; null if no USGS reports or source has no DYFI (EMSC). Null does not mean unfelt."
    • changedOutput schema / properties / event / properties / magnitude / description
      Previous value: -"Preferred magnitude value. Null when no magnitude was computed for the event (the title renders it as \"M ?\")."New value: +"Preferred magnitude; null if not computed (title: \"M ?\")."
    • changedOutput schema / properties / event / properties / mmi / description
      Previous value: -"Maximum ShakeMap instrumental intensity (Modified Mercalli, 0–12 scale). Null when USGS produced no ShakeMap for the event, and always null for EMSC, which publishes no such field."New value: +"Maximum ShakeMap Modified Mercalli intensity (0–12); null without a ShakeMap or for EMSC."
    • changedOutput schema / properties / event / properties / significance / description
      Previous value: -"USGS significance score (0–2000+). Combines magnitude, felt reports, PAGER. Null when USGS computed no score, and always null for EMSC, which publishes no such field."New value: +"USGS significance (0–2000+), combining magnitude, felt reports and PAGER; null if uncomputed or for EMSC."
    • changedOutput schema / properties / event / properties / source_catalog / description
      Previous value: -"Upstream catalog this solution came from, e.g. \"EMSC-RTS\" (EMSC real-time seismicity, revised as analysis continues). Absent for USGS, which publishes no catalog identifier on event records."New value: +"Solution catalog, e.g. EMSC-RTS (real-time, subject to revision). Absent for USGS."
    • changedOutput schema / properties / event / properties / status / description
      Previous value: -"Human-review state: \"automatic\" (posted by automatic processing, not yet verified by a person), \"reviewed\" (examined by an analyst), or \"deleted\". Null when the source publishes no review status — EMSC does not, so treat an EMSC solution as unverified and subject to revision rather than final."New value: +"Review state: automatic (unverified), reviewed (analyst checked), or deleted. Null if unpublished (EMSC); such solutions remain unverified and subject to revision."
    • changedOutput schema / properties / event / properties / title / description
      Previous value: -"Human-readable event summary, e.g. \"M 6.0 - 13 km S of Honaunau-Napoopoo, Hawaii\"."New value: +"Event summary, e.g. \"M 6.0 - Hawaii\"."
    • changedOutput schema / properties / event / properties / tsunami / description
      Previous value: -"USGS tsunami flag: 1 for large events in oceanic regions, 0 otherwise. It is not a warning — USGS states the flag does not indicate whether a tsunami did or will exist; check NOAA (tsunami.gov) for actual alert status. Null when the source publishes no such flag, as EMSC does not."New value: +"USGS tsunami flag: 1 for large oceanic events, 0 otherwise; null if unpublished (EMSC). Not a warning or evidence of a tsunami; check NOAA tsunami.gov for alerts."
  4. Changed1 schema field changed
    • changedInput schema / properties / event_id / description
      Previous value: -"USGS event ID, e.g. \"hv74966427\" or \"us6000sznj\". Found in the \"id\" field of earthquake_get_feed and earthquake_search results."New value: +"USGS event ID, e.g. \"hv74966427\" or \"us6000sznj\". Found in the \"id\" field of earthquake_get_feed and earthquake_search_events results."
  5. Changed14 schema fields changed
    • removedOutput schema / properties / event / properties / cdi / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / event / properties / cdi / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / event / properties / depth_km / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / event / properties / depth_km / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / event / properties / felt / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / event / properties / felt / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / event / properties / magnitude / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / event / properties / magnitude / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / event / properties / mmi / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / event / properties / mmi / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / event / properties / significance / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / event / properties / significance / type
      Added value: +[
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / event / properties / tsunami / anyOf
      Removed value: -[
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / event / properties / tsunami / type
      Added value: +[
      +  "number",
      +  "null"
      +]
  6. Changed6 schema fields changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedInput schema / additionalProperties
      Added value: +false
    • changedOutput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "not": {
      +      "required": [
      +        "error"
      +      ]
      +    },
      +    "required": [
      +      "event"
      +    ]
      +  },
      +  {
      +    "required": [
      +      "error"
      +    ]
      +  }
      +]
    • addedOutput schema / properties / error
      Added value: +{
      +  "additionalProperties": {},
      +  "description": "Present when the call failed. Absent on success.",
      +  "properties": {
      +    "code": {
      +      "description": "JSON-RPC error code for this failure.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "data": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "reason": {
      +          "description": "Machine-readable failure mode. Declared by this tool: `not_found`: No event matches the provided event_id. `source_unavailable`: The USGS event API returns a 5xx, serves HTML, or is unreachable. `source_timeout`: The USGS event API did not answer before the request deadline. Other values are possible when a failure originates below the handler.",
      +          "examples": [
      +            "not_found",
      +            "source_unavailable",
      +            "source_timeout"
      +          ],
      +          "type": "string"
      +        },
      +        "recovery": {
      +          "additionalProperties": {},
      +          "description": "Actionable next step for the caller.",
      +          "properties": {
      +            "hint": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "hint"
      +          ],
      +          "type": "object"
      +        },
      +        "retryable": {
      +          "description": "Whether retrying may succeed.",
      +          "type": "boolean"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "message": {
      +      "description": "Human-readable description of what went wrong.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "message"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "event"
      -]
  7. Changed3 schema fields changed
    • changedOutput schema / properties / detail / properties / shakemap / properties / max_pga / description
      Previous value: -"Maximum modeled peak ground acceleration, in percent of g."New value: +"Maximum modeled peak ground acceleration, in g — a fraction of standard gravity, as USGS ShakeMap publishes it (0.4 is four tenths of g)."
    • addedOutput schema / properties / event / properties / event_certainty
      Added value: +{
      +  "description": "How certain the source is of event_type: \"known\" (asserted), \"suspected\", \"unknown\", or \"unreported\". EMSC publishes this as the first character of its event-type code — a suspected explosion is not a confirmed one, and this is the only field that says so. Absent for USGS, which publishes no certainty axis, and absent for an EMSC code outside the published nomenclature.",
      +  "enum": [
      +    "known",
      +    "suspected",
      +    "unknown",
      +    "unreported"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / event / properties / event_type / description
      Previous value: -"Upstream event classification. USGS spells it out — \"earthquake\", \"quarry blast\", \"explosion\", \"ice quake\" — while EMSC publishes a two-letter evtype code, \"ke\" for a known earthquake and \"ue\" for an unknown event. Not every record in either catalog is a tectonic earthquake. Absent when the source publishes no classification."New value: +"What kind of event this is, in one vocabulary whichever source served it — the QuakeML type names USGS publishes (\"earthquake\", \"quarry blast\", \"explosion\", \"ice quake\"). EMSC's two-character code is decoded to the same names, so the same event carries the same value from either source; how sure the source is rides on event_certainty instead. A code outside the published nomenclature is forwarded verbatim rather than guessed at. Not every record in either catalog is a tectonic earthquake. Absent when the source publishes no classification."
  8. Changed2 schema fields changed
    • addedOutput schema / properties / detail
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Analysis products USGS attached to this event. Absent when the event carries none — that means no product was produced, not that impact was zero.",
      +  "properties": {
      +    "dyfi": {
      +      "additionalProperties": false,
      +      "description": "Felt-report summary. Absent when no DYFI product exists for the event.",
      +      "properties": {
      +        "map_url": {
      +          "description": "URL of the rendered DYFI intensity map image.",
      +          "type": "string"
      +        },
      +        "max_cdi": {
      +          "description": "Maximum Community Decimal Intensity derived from those reports (0–12 scale).",
      +          "type": "number"
      +        },
      +        "responses": {
      +          "description": "Number of \"Did You Feel It?\" reports the public submitted.",
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "finite_fault": {
      +      "additionalProperties": false,
      +      "description": "Finite-fault rupture model. Produced only for large events.",
      +      "properties": {
      +        "model_url": {
      +          "description": "URL of the finite-fault rupture model file.",
      +          "type": "string"
      +        },
      +        "rupture_length_km": {
      +          "description": "Modeled rupture length along strike, in kilometers.",
      +          "type": "number"
      +        },
      +        "rupture_width_km": {
      +          "description": "Modeled rupture width down dip, in kilometers.",
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "ground_failure": {
      +      "additionalProperties": false,
      +      "description": "Secondary-hazard alert levels. Absent when no ground-failure model was run.",
      +      "properties": {
      +        "landslide_alert": {
      +          "description": "Landslide hazard alert level — \"green\", \"yellow\", \"orange\", or \"red\".",
      +          "type": "string"
      +        },
      +        "liquefaction_alert": {
      +          "description": "Liquefaction hazard alert level — \"green\", \"yellow\", \"orange\", or \"red\".",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "losspager": {
      +      "additionalProperties": false,
      +      "description": "PAGER impact assessment. Estimated fatality and economic-loss brackets live in a separate content file and are not part of this response — fetch report_url for them.",
      +      "properties": {
      +        "alert_level": {
      +          "description": "PAGER impact alert level — \"green\", \"yellow\", \"orange\", or \"red\".",
      +          "type": "string"
      +        },
      +        "report_url": {
      +          "description": "URL of the PAGER one-page PDF summary of estimated impact.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "moment_tensor": {
      +      "additionalProperties": false,
      +      "description": "Focal-mechanism solution. Absent for events with no moment-tensor inversion.",
      +      "properties": {
      +        "derived_depth_km": {
      +          "description": "Centroid depth in kilometers derived from the moment-tensor inversion.",
      +          "type": "number"
      +        },
      +        "nodal_plane_1": {
      +          "additionalProperties": false,
      +          "description": "First nodal plane of the focal mechanism. Either plane can be the true fault.",
      +          "properties": {
      +            "dip": {
      +              "description": "Fault plane dip in degrees from horizontal (0–90).",
      +              "type": "number"
      +            },
      +            "rake": {
      +              "description": "Slip direction in degrees (-180 to 180). Near 90 is reverse faulting, near -90 normal, near 0 or 180 strike-slip.",
      +              "type": "number"
      +            },
      +            "strike": {
      +              "description": "Fault plane strike in degrees clockwise from north (0–360).",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "strike",
      +            "dip",
      +            "rake"
      +          ],
      +          "type": "object"
      +        },
      +        "nodal_plane_2": {
      +          "additionalProperties": false,
      +          "description": "Second nodal plane — the auxiliary solution, indistinguishable from the first on seismic data alone.",
      +          "properties": {
      +            "dip": {
      +              "description": "Fault plane dip in degrees from horizontal (0–90).",
      +              "type": "number"
      +            },
      +            "rake": {
      +              "description": "Slip direction in degrees (-180 to 180). Near 90 is reverse faulting, near -90 normal, near 0 or 180 strike-slip.",
      +              "type": "number"
      +            },
      +            "strike": {
      +              "description": "Fault plane strike in degrees clockwise from north (0–360).",
      +              "type": "number"
      +            }
      +          },
      +          "required": [
      +            "strike",
      +            "dip",
      +            "rake"
      +          ],
      +          "type": "object"
      +        },
      +        "scalar_moment_nm": {
      +          "description": "Scalar seismic moment in newton-metres — the physical size of the rupture.",
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "origin": {
      +      "additionalProperties": false,
      +      "description": "Location-quality metrics for the preferred origin.",
      +      "properties": {
      +        "azimuthal_gap_deg": {
      +          "description": "Largest azimuthal gap between stations, in degrees. Gaps above ~180 make the location poorly constrained.",
      +          "type": "number"
      +        },
      +        "depth_error_km": {
      +          "description": "Depth uncertainty in kilometers.",
      +          "type": "number"
      +        },
      +        "horizontal_error_km": {
      +          "description": "Horizontal location uncertainty in kilometers.",
      +          "type": "number"
      +        },
      +        "num_stations_used": {
      +          "description": "Number of seismic stations used in the location solution.",
      +          "type": "number"
      +        },
      +        "review_status": {
      +          "description": "Review state of the origin solution as the contributing network published it.",
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "shakemap": {
      +      "additionalProperties": false,
      +      "description": "ShakeMap modeled ground-motion summary. Absent when no ShakeMap was produced.",
      +      "properties": {
      +        "intensity_map_url": {
      +          "description": "URL of the rendered ShakeMap intensity map image.",
      +          "type": "string"
      +        },
      +        "max_mmi": {
      +          "description": "Maximum modeled shaking intensity across the ShakeMap grid (Modified Mercalli).",
      +          "type": "number"
      +        },
      +        "max_pga": {
      +          "description": "Maximum modeled peak ground acceleration, in percent of g.",
      +          "type": "number"
      +        },
      +        "max_pgv": {
      +          "description": "Maximum modeled peak ground velocity, in cm/s.",
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / event / properties / event_type
      Added value: +{
      +  "description": "Upstream event classification. USGS spells it out — \"earthquake\", \"quarry blast\", \"explosion\", \"ice quake\" — while EMSC publishes a two-letter evtype code, \"ke\" for a known earthquake and \"ue\" for an unknown event. Not every record in either catalog is a tectonic earthquake. Absent when the source publishes no classification.",
      +  "type": "string"
      +}
  9. Changed14 schema fields changed
    • changedOutput schema / properties / event / properties / alert / description
      Previous value: -"PAGER estimated impact alert level. Null if not computed. USGS only."New value: +"PAGER estimated impact alert level. Null when USGS ran no PAGER assessment, and always null for EMSC, which publishes no such field."
    • addedOutput schema / properties / event / properties / auth
      Added value: +{
      +  "description": "Code of the agency or network the source names as authoritative for this solution, e.g. \"NEIC\", \"BMKG\", \"NDI\" from EMSC or \"us\", \"ci\", \"ak\" from USGS. Absent when the source reports none.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / event / properties / cdi / description
      Previous value: -"Maximum reported intensity (Community Decimal Intensity, 0–12 scale). USGS only."New value: +"Maximum reported intensity (Community Decimal Intensity, 0–12 scale), derived from DYFI responses. Null when USGS computed no DYFI intensity, and always null for EMSC, which publishes no such field."
    • changedOutput schema / properties / event / properties / felt / description
      Previous value: -"Number of DYFI (Did You Feel It?) responses. Null if no reports. USGS only."New value: +"Number of DYFI (Did You Feel It?) responses. Null when USGS has received no reports for the event, and always null for EMSC, which publishes no DYFI field — a null is not evidence the event went unfelt."
    • changedOutput schema / properties / event / properties / mmi / description
      Previous value: -"Maximum ShakeMap instrumental intensity (Modified Mercalli, 0–12 scale). USGS only."New value: +"Maximum ShakeMap instrumental intensity (Modified Mercalli, 0–12 scale). Null when USGS produced no ShakeMap for the event, and always null for EMSC, which publishes no such field."
    • changedOutput schema / properties / event / properties / significance / description
      Previous value: -"USGS significance score (0–2000+). Combines magnitude, felt reports, PAGER. USGS only."New value: +"USGS significance score (0–2000+). Combines magnitude, felt reports, PAGER. Null when USGS computed no score, and always null for EMSC, which publishes no such field."
    • addedOutput schema / properties / event / properties / source_catalog
      Added value: +{
      +  "description": "Upstream catalog this solution came from, e.g. \"EMSC-RTS\" (EMSC real-time seismicity, revised as analysis continues). Absent for USGS, which publishes no catalog identifier on event records.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / event / properties / status / anyOf
      Added value: +[
      +  {
      +    "enum": [
      +      "automatic",
      +      "reviewed",
      +      "deleted"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / event / properties / status / description
      Previous value: -"Review status. Automatic detections may be revised."New value: +"Human-review state: \"automatic\" (posted by automatic processing, not yet verified by a person), \"reviewed\" (examined by an analyst), or \"deleted\". Null when the source publishes no review status — EMSC does not, so treat an EMSC solution as unverified and subject to revision rather than final."
    • removedOutput schema / properties / event / properties / status / enum
      Removed value: -[
      -  "automatic",
      -  "reviewed",
      -  "deleted"
      -]
    • removedOutput schema / properties / event / properties / status / type
      Removed value: -"string"
    • addedOutput schema / properties / event / properties / tsunami / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / event / properties / tsunami / description
      Previous value: -"1 if a tsunami warning was issued; 0 otherwise. USGS only; 0 for EMSC events."New value: +"USGS tsunami flag: 1 for large events in oceanic regions, 0 otherwise. It is not a warning — USGS states the flag does not indicate whether a tsunami did or will exist; check NOAA (tsunami.gov) for actual alert status. Null when the source publishes no such flag, as EMSC does not."
    • removedOutput schema / properties / event / properties / tsunami / type
      Removed value: -"number"
  10. Changed3 schema fields changed
    • addedOutput schema / properties / event / properties / magnitude / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / event / properties / magnitude / description
      Previous value: -"Preferred magnitude value."New value: +"Preferred magnitude value. Null when no magnitude was computed for the event (the title renders it as \"M ?\")."
    • removedOutput schema / properties / event / properties / magnitude / type
      Removed value: -"number"
  11. Changed3 schema fields changed
    • addedOutput schema / properties / event / properties / depth_km / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / event / properties / depth_km / description
      Previous value: -"Hypocenter depth in kilometers. Shallow (<70 km), intermediate (70–300 km), or deep (>300 km)."New value: +"Hypocenter depth in kilometers. Shallow (<70 km), intermediate (70–300 km), or deep (>300 km). Null for historical events where depth was not measured."
    • removedOutput schema / properties / event / properties / depth_km / type
      Removed value: -"number"
  12. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the read-only/idempotent annotations, the description discloses important behavioral details: USGS events may include PAGER, ShakeMap, DYFI, moment tensor, landslide/liquefaction, origin quality, and finite-fault data; omitted groups appear in unavailable_includes; EMSC events list requested groups as not_published; and include groups may trigger extra requests.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but appropriately dense for a complex single-event tool with many optional product groups. The core operation and key caveats are front-loaded, and every sentence contributes useful selection or invocation context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool complexity, the available annotations, and the presence of an output schema, the description is complete enough for an agent to choose this tool, form a valid event_id, select include groups, and understand likely omissions or EMSC limitations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is already 100%, the description adds substantial meaning beyond the schema: it explains what each include group represents, when groups may be absent, how unavailable_includes and not_published behave, and that associated_ids are also accepted as event identifiers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource — fetching one earthquake by event ID — and clearly distinguishes this from the feed/search/count sibling tools by explaining that it returns a single normalized event plus detail products unavailable in search results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong context for when to use the tool: event IDs come from earthquake_get_feed and earthquake_search_events, and the include parameter controls optional detail groups. It does not explicitly state when not to use it or name search/feed as alternatives for discovery, but the intended role is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.