# earthquake-mcp-server MCP server

Search USGS and EMSC seismic data — real-time feeds, event queries, and earthquake counts.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-cyanheads-earthquake-mcp-server
- Repository: https://github.com/cyanheads/earthquake-mcp-server

## Install
- Command: `npx -y @cyanheads/earthquake-mcp-server`
- Endpoint: https://earthquake.caseyjhand.com/mcp
- Auth: Not captured

## Setup notes
- Package: Npm @cyanheads/earthquake-mcp-server v0.3.1
- Environment variable: MCP_LOG_LEVEL (default info)
- Package: Npm @cyanheads/earthquake-mcp-server v0.3.1
- Environment variable: MCP_HTTP_HOST (default 127.0.0.1)
- Environment variable: MCP_HTTP_PORT (default 3010)
- Environment variable: MCP_HTTP_ENDPOINT_PATH (default /mcp)
- Environment variable: MCP_AUTH_MODE (default none)
- Environment variable: MCP_LOG_LEVEL (default info)
- Remote endpoint: https://earthquake.caseyjhand.com/mcp

## Tools
- earthquake_get_feed (Get USGS Earthquake Feed) - Fetch a USGS pre-computed real-time earthquake feed by magnitude tier and time window. These feeds are CDN-cached by USGS and faster and more available than the query API — use them for "what's happening now" queries. "all" includes microseisms (M<1); "significant" is a USGS curation based on magnitude, felt reports, and PAGER impact estimates. "hour" returns 0–10 events typically; "month" can exceed 10,000 for the "all" tier, so results are returned a page at a time: count is the page size, totalCount the whole feed, and nextCursor the input for the following page. The cursor is opaque and must be passed back verbatim — unlike earthquake_search, these feeds have no upstream paging parameter and USGS regenerates them about once a minute, so a numeric offset across two calls would skip or repeat events. For historical or filtered queries, use earthquake_search instead. Endpoint: https://earthquake.caseyjhand.com/mcp
- earthquake_search (Search Earthquakes) - Search earthquakes by time range, magnitude, depth, location radius, PAGER alert level, or felt reports. Supports USGS (global, richer metadata: PAGER, DYFI, ShakeMap) and EMSC, an independent global catalog operated by the European-Mediterranean Seismological Centre. For location-based queries, provide latitude, longitude, and radius_km together. A rectangular study area is expressed with min_latitude, max_latitude, min_longitude, and max_longitude — each independently optional, so a single edge is a valid constraint. Combining the box with the lat/lon/radius circle intersects the two, returning only events inside both. Both catalogs include non-tectonic records (quarry blasts, explosions) — every event carries its event_type, and event_type="earthquake" filters the rest out on USGS. USGS-specific filters (alert_level, event_type, min_felt, min_significance) are not sent when source=emsc — the response names them in ignoredFilters. Use earthquake_count first to gauge result size before requesting large result sets. A single call returns at most 20,000 events; larger result sets are retrieved by paging with offset, which is passed straight through to the upstream FDSN API. When a result is capped, nextOffset carries the offset for the following page and totalCount the full match count — or countUnavailable reports that the count lookup failed and the total is unknown. Endpoint: https://earthquake.caseyjhand.com/mcp
- earthquake_get_event (Get Earthquake Event Detail) - Fetch detail for a specific earthquake by USGS event ID. Returns the same normalized event a search result carries, plus 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), and finite-fault rupture dimensions. Products are omitted when USGS produced none — a small automatic event typically has no detail at all, while a large reviewed one has most of it. Event IDs appear in the "id" field of earthquake_get_feed and earthquake_search results. This tool is USGS-only — EMSC events have no per-event detail endpoint. Endpoint: https://earthquake.caseyjhand.com/mcp
- earthquake_count (Count Earthquakes) - Count earthquakes matching filters without fetching full records. Use for statistical queries ("how many M5+ earthquakes in 2025?") or to gauge result size before calling earthquake_search. Omitting start_time counts only the last 30 days, so pass an explicit range for any period-specific question; queryEcho reports the window and filters the count actually covers. When exceeds_limit is true, the count exceeds 20,000 and a full search would be truncated — narrow filters before fetching. USGS returns the max_allowed cap (20,000); EMSC count endpoint does not return this field (max_allowed will be null). Counts can be scoped to a rectangular study area with min_latitude, max_latitude, min_longitude, and max_longitude — each independently optional. Combining the box with the lat/lon/radius circle intersects the two, counting only events inside both. Both catalogs include non-tectonic records, so a radius over a mining region counts quarry blasts alongside earthquakes — pass event_type="earthquake" on USGS to exclude them. USGS-specific filters (alert_level, event_type, min_felt, min_significance) are not sent when source=emsc — the response names them in ignoredFilters. Endpoint: https://earthquake.caseyjhand.com/mcp

## Resources
- earthquake://feed/all/hour - USGS Earthquake Feed USGS real-time feed: all events in the last hour. MIME type: application/json
- earthquake://feed/all/day - USGS Earthquake Feed USGS real-time feed: all events in the last day. MIME type: application/json
- earthquake://feed/all/week - USGS Earthquake Feed USGS real-time feed: all events in the last week. MIME type: application/json
- earthquake://feed/all/month - USGS Earthquake Feed USGS real-time feed: all events in the last month. MIME type: application/json
- earthquake://feed/1.0/hour - USGS Earthquake Feed USGS real-time feed: M1.0+ events in the last hour. MIME type: application/json
- earthquake://feed/1.0/day - USGS Earthquake Feed USGS real-time feed: M1.0+ events in the last day. MIME type: application/json
- earthquake://feed/1.0/week - USGS Earthquake Feed USGS real-time feed: M1.0+ events in the last week. MIME type: application/json
- earthquake://feed/1.0/month - USGS Earthquake Feed USGS real-time feed: M1.0+ events in the last month. MIME type: application/json
- earthquake://feed/2.5/hour - USGS Earthquake Feed USGS real-time feed: M2.5+ events in the last hour. MIME type: application/json
- earthquake://feed/2.5/day - USGS Earthquake Feed USGS real-time feed: M2.5+ events in the last day. MIME type: application/json
- earthquake://feed/2.5/week - USGS Earthquake Feed USGS real-time feed: M2.5+ events in the last week. MIME type: application/json
- earthquake://feed/2.5/month - USGS Earthquake Feed USGS real-time feed: M2.5+ events in the last month. MIME type: application/json
- earthquake://feed/4.5/hour - USGS Earthquake Feed USGS real-time feed: M4.5+ events in the last hour. MIME type: application/json
- earthquake://feed/4.5/day - USGS Earthquake Feed USGS real-time feed: M4.5+ events in the last day. MIME type: application/json
- earthquake://feed/4.5/week - USGS Earthquake Feed USGS real-time feed: M4.5+ events in the last week. MIME type: application/json
- earthquake://feed/4.5/month - USGS Earthquake Feed USGS real-time feed: M4.5+ events in the last month. MIME type: application/json
- earthquake://feed/significant/hour - USGS Earthquake Feed USGS real-time feed: significant events in the last hour. MIME type: application/json
- earthquake://feed/significant/day - USGS Earthquake Feed USGS real-time feed: significant events in the last day. MIME type: application/json
- earthquake://feed/significant/week - USGS Earthquake Feed USGS real-time feed: significant events in the last week. MIME type: application/json
- earthquake://feed/significant/month - USGS Earthquake Feed USGS real-time feed: significant events in the last month. MIME type: application/json

## Prompts
Not captured

## Metadata
- Owner: io.github.cyanheads
- Version: 0.3.1
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jul 26, 2026
- Source: https://registry.modelcontextprotocol.io
