USGS Earthquake Catalog MCP (FDSNWS event API). Keyless real-time + historical seismic data from the United States Geological Survey. Search/count global earthquakes by time window, magnitude, depth, and geographic radius, or fetch full detail for a single event by its USGS id. Backed by the authoritative ANSS Comprehensive Catalog (ComCat).
Three well-named, read-only tools with complete input schemas and solid descriptions (150 - 200 chars each). All parameters are typed and described. Tool names follow verb_noun pattern (search_, get_, count_). Schemas use proper JSON Schema with type declarations. However, output schemas are not documented, LLMs cannot predict response structure. Error handling returns generic error objects without recovery guidance. No parameter constraints (enums, ranges) despite opportunities (e.g., order_by should be an enum). Missing per-parameter validation rules in descriptions.
Count earthquakes matching a filter without returning the events — fast for questions like "how many M5+ quakes in the last month near X". Same filters as search_earthquakes (time, magnitude, circular area). Keyless.
Get full detail for a single earthquake by its USGS event id (e.g. "us7000n7n8"). Returns magnitude, location, time, depth, felt reports, tsunami flag, PAGER alert level, status, contributing networks, and detail URLs. Keyless.
Search the USGS earthquake catalog (FDSNWS event API) for real-time and historical seismic events. Filter by time window, magnitude, depth, and a circular geographic area. Returns a compact list of quakes with magnitude, location, time, coordinates, depth, and significance. Keyless.
Output schemas not documented. LLMs cannot predict response structure or plan downstream tool calls. search_earthquakes returns a list of quake objects, but the schema for each object (fields, types) is invisible to the agent.
order_by parameter accepts free-form strings instead of an enum. Description lists valid values ('time', 'magnitude', 'time-asc', 'magnitude-asc') but does not enforce them. LLMs may hallucinate invalid values like 'newest' or 'largest'.
Error responses are generic objects with an 'error' field. No recovery guidance. When USGS API returns 400, the agent sees 'USGS: 400 ...' but does not know whether to retry, adjust parameters, or ask the user.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Numeric parameters lack range constraints in descriptions. limit defaults to 20 and caps at 100, but the description does not state the bounds. min_magnitude, max_magnitude, latitude, longitude, max_radius_km have no stated ranges, inviting invalid inputs.
No pagination support. search_earthquakes returns up to 100 events but does not offer offset/cursor or total count. If an agent needs all M5+ earthquakes in a region over a year, it cannot iterate, it gets only the first 100.