@pipeworx/usgs-earthquake
Connect: https://gateway.pipeworx.io/usgs-earthquake/mcp · Install: one-click buttons
Tools: 3
The U.S. Geological Survey’s earthquake catalog. Real-time global earthquake detection (most events tagged within minutes of occurrence), historical catalog going back centuries, magnitudes, depths, locations, ShakeMaps. The authoritative source for “did the earth just move?” Free, no auth.
Why this matters for AI agents
For seismic monitoring, disaster response, infrastructure risk, or “was there an earthquake near X?” questions, USGS is the canonical source. Pair with NOAA (tsunami warnings) and USGS Water for full geophysical agent coverage.
Common flows:
- Recent earthquakes. “Quakes in the last 24 hours, M3+” → time + magnitude filtered query.
- By region. “Quakes near Tokyo this week” → bounding box or radius query.
- Specific event. Detail by event ID — magnitude, depth, location, time, ShakeMap.
- Historical search. “Significant quakes within 100km of San Francisco since 1900” → catalog query.
Auth
None. USGS earthquake feeds and catalog API are fully public, free.
What’s tracked
| Data | Coverage |
|---|---|
| Real-time global feed | M2.5+ globally; M1.0+ in CONUS |
| Historical catalog | M4.5+ globally back to ~1900; smaller in instrumented eras |
| ShakeMap | Estimated ground-shaking maps for significant events |
| DYFI (Did You Feel It?) | Crowdsourced felt reports from public |
| PAGER | Auto-generated impact estimates (deaths, economic loss) |
Magnitude scales
USGS reports magnitudes on multiple scales depending on event size and instruments:
- Mw (moment magnitude) — preferred modern scale, valid all sizes
- Ml (local / Richter) — historical; saturates above ~6.5
- Mb (body-wave) — used for distant or smaller events
- Md (duration) — quick-and-dirty for small events
Most modern reports use Mw. For comparing across decades, beware of scale changes in older entries.
Common pitfalls
- Initial magnitudes are revised. First-cut magnitudes (within minutes) often shift by 0.1-0.5 as more stations report. The “final” magnitude can take hours to days. Show the magnitude with a “reviewed” indicator if available.
- Depth uncertainty. Earthquake depths have significant uncertainty (±5-15 km is normal). Quoting “10.0 km depth” with false precision is misleading.
- Felt vs damaging. A M5.0 at 300km depth feels small at the surface; a M3.0 at 5km depth can rattle windows. Magnitude alone doesn’t predict felt intensity — use ShakeMap or DYFI for that.
- Aftershock vs new event. Aftershocks are real earthquakes; counting them as “another quake” inflates totals. USGS doesn’t auto-tag mainshock vs aftershock; the analyst does.
- Coverage decreases for small magnitudes globally. M2.0 in California is detected; M2.0 in central Asia might not be. Don’t compare event counts across regions for small magnitudes.
- Tsunamigenic vs not. USGS doesn’t issue tsunami warnings — that’s NOAA’s NWS Tsunami Warning Centers. For tsunami threat assessment, follow up with the relevant warning center.
Tools
- get_recent — Get recent earthquakes worldwide, optionally filtered by minimum magnitude. Returns location, magnitude, depth, and time. Example: get_recent({ minmagnitude: 4.5, limit: 10 })
- search_earthquakes — Search for earthquakes by date range, magnitude, and geographic location. Supports circular area search by lat/lon/radius. Example: search_earthquakes({ starttime: “2024-01-01”, endtime: “2024-01-31”,
- get_event — Get detailed information about a specific earthquake event by its USGS event ID. Example: get_event({ eventid: “us7000m0xl” })
Tools
-
get_event— Get detailed information about a specific earthquake event by its USGS event ID. Example: get_event({ eventid: us7000m0xl }) -
get_recent— Get recent earthquakes worldwide, optionally filtered by minimum magnitude. Returns location, magnitude, depth, and time. Example: get_recent({ minmagnitude: 4.5, limit: 10 }) -
search_earthquakes— Search for earthquakes by date range, magnitude, and geographic location. Supports circular area search by lat/lon/radius. Example: search_earthquakes({ starttime: 2024-01-01 , endtime: 2024-01-31 , m