Skip to main content
Glama

Search earthquakes

eq_search
Read-onlyIdempotent

Search earthquakes in Iran by date, magnitude, bounding box, or place text to retrieve matching seismic events and history.

Instructions

Search earthquakes in Iran by date range, magnitude, bounding box and place text.

Use for history ("M5+ in 2026", "quakes near Bam"). more = more results may exist beyond limit (or beyond the newest 500 events scanned when filtering by place/iran_only: narrow the dates or bbox).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "start_date": "<start_date>"
    },
    "name": "eq_search"
  }
}

Input Schema

NameRequiredDescriptionDefault
bboxNo'min_lat,min_lon,max_lat,max_lon', e.g. '35,50,36,52'. Default: all Iran.
limitNoMax events, 1-50.
orderNo'time' newest first, or 'magnitude' largest first.time
placeNoEnglish text the place must contain, accents/case ignored, e.g. 'Minab'. A province name (Tehran, Kerman, Hormozgan, Khuzestan, Fars, Sistan and Baluchestan, Kermanshah, Razavi Khorasan, East Azerbaijan, West Azerbaijan, Bushehr, Mazandaran) selects its approximate box.
sourceNo'usgs' (default), 'emsc' or 'irsc' (Iranian Seismological Center, latest ~20 events only).usgs
end_dateNoUTC, same format (a date alone includes that day). Default: now.
iran_onlyNoTrue: only events inside Iran (outline plus place text, incl. its waters). False: whole bounding box.
start_dateYesUTC 'YYYY-MM-DD' or 'YYYY-MM-DDTHH:MM:SS'.
max_magnitudeNoMaximum magnitude.
min_magnitudeNoMinimum magnitude.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv0.2.0
    • changedInput schema / properties / bbox / description
      Previous value: -"Box 'min_lat,min_lon,max_lat,max_lon', e.g. '35,50,36,52' (Tehran area). Default: all Iran."New value: +"'min_lat,min_lon,max_lat,max_lon', e.g. '35,50,36,52'. Default: all Iran."
    • changedInput schema / properties / end_date / description
      Previous value: -"End, UTC, same format, e.g. '2026-10-15' (a date alone includes that whole day). Default: now."New value: +"UTC, same format (a date alone includes that day). Default: now."
    • changedInput schema / properties / iran_only / description
      Previous value: -"True (default): keep only events inside a coarse Iran outline (lat/lon, includes Iranian waters) whose place text names Iran (or Persian Gulf, Gulf of Oman, Caspian Sea); neighbours across the border are dropped. False: everything in the bounding box."New value: +"True: only events inside Iran (outline plus place text, incl. its waters). False: whole bounding box."
    • changedInput schema / properties / limit / description
      Previous value: -"Max events to return, 1-50 (a reply stays under 15 KB), e.g. 20."New value: +"Max events, 1-50."
    • changedInput schema / properties / max_magnitude / description
      Previous value: -"Maximum magnitude, e.g. 6."New value: +"Maximum magnitude."
    • changedInput schema / properties / min_magnitude / description
      Previous value: -"Minimum magnitude, e.g. 4.5."New value: +"Minimum magnitude."
    • changedInput schema / properties / order / description
      Previous value: -"'time' (newest first, default) or 'magnitude' (largest first)."New value: +"'time' newest first, or 'magnitude' largest first."
    • changedInput schema / properties / place / description
      Previous value: -"Text the place must contain, case and accents ignored, e.g. 'Minab' or 'southern iran' (EMSC region); IRSC places are 'Town, Province'. A province name (Tehran, Kerman, Hormozgan, Khuzestan, Fars, Sistan and Baluchestan, Kermanshah, Razavi Khorasan, East Azerbaijan, West Azerbaijan, Bushehr, Mazandaran) selects its approximate box instead. English names only."New value: +"English text the place must contain, accents/case ignored, e.g. 'Minab'. A province name (Tehran, Kerman, Hormozgan, Khuzestan, Fars, Sistan and Baluchestan, Kermanshah, Razavi Khorasan, East Azerbaijan, West Azerbaijan, Bushehr, Mazandaran) selects its approximate box."
    • changedInput schema / properties / source / description
      Previous value: -"Data source: 'usgs' (USGS ComCat, default), 'emsc' (EMSC via SeismicPortal) or 'irsc' (Iranian Seismological Center, only its latest ~20 events, with province names). Magnitudes and locations differ slightly between them; ids are not interchangeable."New value: +"'usgs' (default), 'emsc' or 'irsc' (Iranian Seismological Center, latest ~20 events only)."
    • changedInput schema / properties / start_date / description
      Previous value: -"Start, UTC: 'YYYY-MM-DD' or 'YYYY-MM-DDTHH:MM:SS', e.g. '2026-10-01'."New value: +"UTC 'YYYY-MM-DD' or 'YYYY-MM-DDTHH:MM:SS'."
  2. First observedv0.1.0

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so safety is covered. The description adds genuinely non-obvious behavior beyond that: a `more` flag signaling truncation and, critically, the 500-newest-event scan ceiling that applies when filtering by place or iran_only — a real limitation the agent could not infer from the schema. Return format and per-source differences are left unstated.

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

Conciseness4/5

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

Two compact sentences with the scope statement front-loaded and no filler; the example queries do real work showing how parameters combine. The second sentence is dense and slightly tangled (the parenthetical about the 500-event scan takes a re-read), which keeps it short of ideal.

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?

For a 10-parameter search tool with full schema coverage and annotations, the description supplies the missing behavioral layer: truncation signaling and the internal scan limit. With no output schema, a sentence on the returned event shape would help, but the `more` field is at least acknowledged, leaving only a minor gap.

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% and every parameter (bbox format, limit range, order enum, place matching, source enum, iran_only semantics) is documented inline, so the baseline is 3. The description adds only indirect meaning — the 'M5+' example maps to magnitude filters and the `more` sentence ties to `limit` and the place/iran_only path — but contributes no new syntax or edge-case detail of its own.

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

Purpose4/5

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

States a specific verb and resource ('Search earthquakes in Iran') and enumerates the filter axes (date range, magnitude, bbox, place text), so the agent knows exactly what capability this is. It implicitly separates itself from eq_latest via 'Use for history', but never names or contrasts eq_significant, eq_stats, or eq_detail, so sibling differentiation is only partial.

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 'Use for history' clause plus the two quoted example queries ('M5+ in 2026', 'quakes near Bam') give a concrete trigger context, and the `more` note tells the agent what to do when results are truncated (narrow dates or bbox). What is missing is explicit routing away from alternatives — nothing says when to prefer eq_latest or eq_significant instead.

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

Deploy Server

Other Tools