Skip to main content
Glama

Search Earthquakes

search_earthquakes
Read-onlyIdempotent

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax events to return (default 20, max 100).
end_timeNoISO date/time upper bound, e.g. "2026-06-09". Defaults to now.
latitudeNoCenter latitude for a circular search (use with longitude + max_radius_km).
order_byNoSort order: "time" (newest first, default), "magnitude" (largest first), "time-asc", or "magnitude-asc".
longitudeNoCenter longitude for a circular search (use with latitude + max_radius_km).
start_timeNoISO date/time lower bound, e.g. "2026-06-01" or "2026-06-01T00:00:00". Defaults to 30 days ago.
max_depth_kmNoMaximum hypocenter depth in km.
min_depth_kmNoMinimum hypocenter depth in km.
max_magnitudeNoMaximum magnitude.
max_radius_kmNoSearch radius in km around latitude/longitude.
min_magnitudeNoMinimum magnitude (e.g. 5 for M5+).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
countNoTotal number of earthquakes matching criteria
earthquakesNoList of earthquakes matching search criteria

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed8 schema fields changed
    • removedOutput schema / properties / earthquakes / items / properties / alert
      Removed value: -{
      -  "description": "Alert level if applicable",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • addedOutput schema / properties / earthquakes / items / properties / felt_reports
      Added value: +{
      +  "type": [
      +    "null",
      +    "number"
      +  ]
      +}
    • addedOutput schema / properties / earthquakes / items / properties / magType
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / earthquakes / items / properties / tsunami
      Removed value: -{
      -  "description": "Tsunami warning flag",
      -  "type": "boolean"
      -}
    • addedOutput schema / properties / earthquakes / items / properties / tsunami_flag
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / earthquakes / items / properties / url
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / earthquakes / items / required
      Removed value: -[
      -  "id",
      -  "magnitude",
      -  "place",
      -  "time",
      -  "latitude",
      -  "longitude",
      -  "depth_km",
      -  "type",
      -  "tsunami",
      -  "significance"
      -]
    • removedOutput schema / required
      Removed value: -[
      -  "count",
      -  "earthquakes"
      -]
  2. Changed1 schema field changed
    • changedInput schema / examples
      Previous value: -[
      -  {
      -    "endtime": "2024-01-31",
      -    "minmagnitude": 5,
      -    "starttime": "2024-01-01"
      -  },
      -  {
      -    "endtime": "2024-12-31",
      -    "latitude": 35.68,
      -    "longitude": 139.69,
      -    "maxradius": 5,
      -    "minmagnitude": 3,
      -    "starttime": "2024-01-01"
      -  }
      -]New value: +[
      +  {},
      +  {
      +    "latitude": 35.68,
      +    "longitude": 139.69
      +  }
      +]
  3. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "endtime": "2024-01-31",
      +    "minmagnitude": 5,
      +    "starttime": "2024-01-01"
      +  },
      +  {
      +    "endtime": "2024-12-31",
      +    "latitude": 35.68,
      +    "longitude": 139.69,
      +    "maxradius": 5,
      +    "minmagnitude": 3,
      +    "starttime": "2024-01-01"
      +  }
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "count": {
      +      "description": "Total number of earthquakes matching criteria",
      +      "type": "number"
      +    },
      +    "earthquakes": {
      +      "description": "List of earthquakes matching search criteria",
      +      "items": {
      +        "properties": {
      +          "alert": {
      +            "description": "Alert level if applicable",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "depth_km": {
      +            "description": "Depth below surface in kilometers",
      +            "type": "number"
      +          },
      +          "id": {
      +            "description": "USGS event ID",
      +            "type": "string"
      +          },
      +          "latitude": {
      +            "description": "Epicenter latitude",
      +            "type": "number"
      +          },
      +          "longitude": {
      +            "description": "Epicenter longitude",
      +            "type": "number"
      +          },
      +          "magnitude": {
      +            "description": "Earthquake magnitude",
      +            "type": "number"
      +          },
      +          "place": {
      +            "description": "Location description",
      +            "type": "string"
      +          },
      +          "significance": {
      +            "description": "Event significance score",
      +            "type": "number"
      +          },
      +          "time": {
      +            "description": "Event time in ISO 8601 format",
      +            "type": "string"
      +          },
      +          "tsunami": {
      +            "description": "Tsunami warning flag",
      +            "type": "boolean"
      +          },
      +          "type": {
      +            "description": "Event type (e.g., earthquake)",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "magnitude",
      +          "place",
      +          "time",
      +          "latitude",
      +          "longitude",
      +          "depth_km",
      +          "type",
      +          "tsunami",
      +          "significance"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "count",
      +    "earthquakes"
      +  ],
      +  "type": "object"
      +}
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description adds useful context: 'Keyless' (no API key required), real-time and historical coverage, and the compact list return format. No contradiction with annotations, and the added keyless disclosure is a genuine behavioral trait not captured by annotations.

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 two sentences with no filler. It is front-loaded with the primary action and resource, conveys the key filtering capabilities, mentions the return fields, and adds the keyless note. Every sentence earns its place.

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

Completeness4/5

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

With 11 parameters but all optional and fully described in the schema, plus an output schema present, the description provides sufficient context. It communicates the catalog source, filter types, return summary, and keyless access. It does not need to explain defaults or return value structure since those are covered by the schema and output schema.

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

Parameters3/5

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

Schema description coverage is 100%, with every parameter documented. The description summarizes filter categories (time window, magnitude, depth, circular area) which helps group the parameters, but adds little new meaning beyond the schema's own per-parameter descriptions. Baseline 3 is appropriate given the high schema coverage.

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 'Search the USGS earthquake catalog...' with a specific verb and resource, and clarifies the return type as a compact list with magnitude, location, time, etc. This clearly distinguishes it from sibling tools like count_earthquakes and get_earthquake.

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?

The description clearly implies the use case for querying seismic events with filters (time, magnitude, depth, area) and returns a list of quakes. While it does not explicitly name alternative sibling tools or when not to use it, the 'compact list' wording and filter scope provide clear context for when this tool is appropriate.

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.

TDQS

A3.6/5.0
Disambiguation1/5

The tool set is dominated by tools unrelated to USGS earthquakes (e.g., Polymarket betting, company profiles, memory operations). An agent would find it nearly impossible to distinguish the few earthquake-specific tools from the multitude of unrelated ones, leading to severe misselection.

Naming Consistency3/5

Most tool names follow a verb_noun pattern with underscores (e.g., search_earthquakes, count_earthquakes), which is consistent. However, the variety of verbs and domains creates a sense of incoherence, and some tool names are overly generic (e.g., process, run) in the broader context, though those are not present here. The naming pattern is acceptable but the inconsistency in domain scope reduces clarity.

Tool Count1/5

With 29 tools but only 3 directly related to earthquakes, the tool count is grossly inappropriate. The server's name suggests a focused purpose, but the vast majority of tools belong to other domains (e.g., Pipeworx queries, Polymarket betting, company data). This extreme mismatch makes the tool set bloated and misleading.

Completeness2/5

For earthquake data, the server provides only search, count, and get by ID. Missing are common operations like listing recent quakes, subscribing to alerts, or updating/correcting data. The coverage is minimal and insufficient for a comprehensive earthquake tool server, leaving significant gaps that agents could not work around.