Iran Earthquakes

io.github.sepehr071由 GitHub 帳號 sepehr071 發布v0.2.0更新於 Nov 7, 2026

Unofficial read-only Iran earthquakes: latest, search, strongest, detail, stats (USGS, EMSC, IRSC).

已驗證STDIO僅桌面位置與生活資料與分析

概覽

AI 產生的概覽

唯讀 MCP 伺服器,讓助理從 USGS、EMSC 與 IRSC 資料來源查詢伊朗近期與歷史地震。

可以做什麼
  • 依最低規模與回溯小時數列出伊朗最新地震
  • 依 UTC 日期範圍、規模範圍、邊界框或地名文字搜尋地震事件
  • 依規模由大到小列出近期最強地震
  • 依事件 ID 取得單一地震的完整資訊,含深度、規模類型與來源品質欄位
  • 統計某時間範圍內依規模區間與地點的事件數量,並列出最強事件
適用情境
適合使用者詢問伊朗近期或歷史地震、某段時間最強的地震、某省或城市附近的地震活動,或某段期間的活躍程度。不適用於官方告警、警示或早期預警,也不適用於伊朗及鄰國以外地區的地震。
執行需求
透過 uvx 以 stdio 在本機執行(需要 uv 與 Python 3.10+),不需 API 金鑰或帳號。需能連線 USGS 與 EMSC 的 HTTPS 服務,以及 IRSC 的明文 HTTP 服務;可選環境變數 IRAN_QUAKE_MCP_PROXY 用來設定代理,系統代理設定會被忽略。
安裝前請注意
雖為唯讀,但資料僅供參考:來源有延遲且數值會被修訂,並非預警服務。三個來源的結果不會合併,事件 ID 也各不相同。IRSC 資料僅授權非商業、人道用途,且必須註明伊朗地震中心。查詢會送往第三方公開資料來源。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Iran Earthquakes,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

iran-quake-mcp: Iran earthquakes MCP server for AI agents

Let your AI agent check the latest earthquakes in Iran (زلزله ایران).
An unofficial, read-only MCP server for earthquake data from USGS, EMSC and the Iranian Seismological Center:
latest quakes, history search, the strongest events, one event in full and activity statistics, from Claude, Cursor or Copilot.

[PyPI] [Python] [CI] [MCP Registry] [License: MIT] [mcpfarsi]

[Install in VS Code]

For AI agents · Quick start · What it can do · Tools · FAQ · فارسی


For AI agents

  • What: unofficial MCP server (model context protocol) for earthquakes in Iran. Sources: USGS ComCat (source="usgs", default), EMSC via SeismicPortal (source="emsc") and the Iranian Seismological Center (source="irsc", only its latest ~20 events, with province names). Sources are not merged; their event ids differ.
  • Install: uvx iran-quake-mcp or claude mcp add iran-quake -- uvx iran-quake-mcp. Transport: stdio. Needs uv (Python 3.10+).
  • Auth: none, no API key or account. Optional IRAN_QUAKE_MCP_PROXY (HTTP proxy URL, or a comma-separated list); system proxy settings are ignored.
  • Access: read-only. It cannot write or subscribe, so no confirmation is needed before calling any tool.
  • Tools: 5, all prefixed eq_. Typical sequence: eq_latest or eq_significant -> eq_detail with an id from the list. eq_search for a date range, bounding box or place; eq_stats for counts.
  • Use when: the user asks about recent or past earthquakes in Iran, the strongest quakes, quakes near a province or city, or how active a period was.
  • Do not use when: the user needs an official warning or alert (this is not a warning service; see the Iranian Seismological Center, irsc.ut.ac.ir), or asks about earthquakes outside Iran and its neighbours.
  • Units: time_utc (UTC) and time_tehran (UTC+03:30, no daylight saving); search dates are UTC; depth_km in kilometres; mag_type (mb, ml, mw...) says which magnitude it is.
  • Replies: at most 50 events per call (limit 1-50), about 12 KB at the maximum, under 15 KB.
  • Machine-readable: server.json and the iran-mcp catalog.

Why

Earthquake feeds are built for seismologists: different servers, different id formats, UTC timestamps, no province field. Asking "was there a quake above 4.5 near Kerman this week, and what was the strongest one in Iran this month?" means querying a map or a query form and converting times by hand. With iran-quake-mcp an agent answers it in a few calls and returns a short summary with Tehran time and depth in kilometres.

You: Were there any strong earthquakes in Iran in the last 30 days?

Agent: calls eq_significant(days=30, min_magnitude=5.0) -> eq_detail(...) for the largest one

It lists the events from largest to smallest with magnitude, place, depth and Tehran time, then adds the review status and felt reports of the biggest one.

Every reply stays under 15 KB (about 12 KB at the maximum), so it does not flood the agent's context.

What it can do

  • Latest earthquakes in Iran by minimum magnitude and hours back, newest first
  • Search by UTC date range, magnitude range, bounding box and place text, ordered by time or magnitude
  • Strongest events of the last N days, largest first
  • One event in full by id: for USGS review status, felt/shaking, tsunami flag and quality; for EMSC the agency and update time; for IRSC the nearest towns
  • Statistics for a window: counts by magnitude band, top places and the strongest event
  • Three sources in one server: USGS, EMSC and the Iranian Seismological Center
  • Read-only by design: nothing is written or subscribed to

Example prompts:

  • "Show earthquakes of magnitude 4 or more in Iran in the last 48 hours."
  • "What were the 10 strongest earthquakes in Iran in the last year?"
  • "Any earthquakes near Kerman this month?"
  • "Give me the quake statistics for Iran over the last 30 days."
  • "Details of the latest quake on the Iranian Seismological Center feed, with province."
  • آخرین زلزله‌های ایران در ۲۴ ساعت گذشته کدام‌اند؟
  • قوی‌ترین زلزله‌های ماه اخیر در ایران را با عمق و ساعت تهران بده.
  • آیا در هفته گذشته در هرمزگان زلزله بالای ۴ ریشتر آمده؟

Quick start

You need uv. No API key or account.

Claude Code
bash
claude mcp add iran-quake -- uvx iran-quake-mcp
Claude Desktop

Settings → Developer → Edit Config, then add:

json
{  "mcpServers": {    "iran-quake": { "command": "uvx", "args": ["iran-quake-mcp"] }  }}
Cursor

Add the Claude Desktop block above to ~/.cursor/mcp.json (or .cursor/mcp.json in a project).

VS Code (Copilot agent mode)

Click Install in VS Code above, or add to .vscode/mcp.json:

json
{  "servers": {    "iran-quake": { "type": "stdio", "command": "uvx", "args": ["iran-quake-mcp"] }  }}
Codex CLI
bash
codex mcp add iran-quake -- uvx iran-quake-mcp

Or in ~/.codex/config.toml:

toml
[mcp_servers.iran-quake]command = "uvx"args = ["iran-quake-mcp"]
Gemini CLI

Add to ~/.gemini/settings.json:

json
{  "mcpServers": {    "iran-quake": { "command": "uvx", "args": ["iran-quake-mcp"] }  }}
Windsurf

Add the Claude Desktop block to ~/.codeium/windsurf/mcp_config.json.

Anything else

It is a standard stdio MCP server: run uvx iran-quake-mcp, or pip install iran-quake-mcp and run iran-quake-mcp.

Tools

The list tools (eq_latest, eq_search, eq_significant, eq_stats) take an optional source (usgs default, emsc, irsc) and iran_only (default true).

ToolWhat it does
eq_latestList the most recent earthquakes in Iran, newest first
eq_searchSearch earthquakes in Iran by date range, magnitude, bounding box and place text
eq_significantList the strongest recent earthquakes in Iran, largest magnitude first
eq_detailGet one earthquake in full: location, depth_km, magnitude type and source quality fields
eq_statsCount earthquakes in Iran over a window: by magnitude band, by place, plus the strongest event

All 5 tools are annotated readOnlyHint: true.

How it works

text
  AI agent  (Claude, Cursor, Copilot, ...)      │      │  MCP over stdio      ▼  iran-quake-mcp  (runs on your machine)      │      │  HTTPS (IRSC: plain HTTP)      ├──────▶  earthquake.usgs.gov   USGS FDSN event API      ├──────▶  www.seismicportal.eu  EMSC FDSN event API      └──────▶  irsc.ut.ac.ir         events_list.xml

iran-quake-mcp runs locally and calls the public feeds of USGS, EMSC and IRSC. It has no hosted server in between and no API key. It sends at most 2 requests at a time with a little jitter, keeps answers for 60 seconds, retries a failed GET up to 4 times (USGS sometimes answers a sporadic 502), caps a response body at 5 MB and only talks to those three hosts. It only reads.

Good to know

  • Times: time_utc is UTC, time_tehran is UTC+03:30 (no daylight saving since 2022). Search dates are UTC. Depth is depth_km, positive.
  • Magnitudes: the type is in mag_type (mb, ml, mw...). Values from different types or sources are not exactly comparable.
  • Sources are separate: results are not merged or deduplicated and ids differ. eq_detail takes only an event id and detects the source from its format: EMSC 20261014_0000009, IRSC a plain number such as 213549 (only found in its latest ~20 events), otherwise USGS.
  • Inside Iran only by default: the event must fall inside a coarse Iran outline (about 0.3 degrees on land borders, plus Iranian waters of the Persian Gulf, Gulf of Oman and south Caspian) and its place text must name Iran, Persian Gulf, Gulf of Oman or Caspian Sea. Events just across the border are dropped. iran_only=false returns everything in the box 24-40 N, 43.5-64 E.
  • Places: USGS and EMSC have no province field (USGS gives the nearest town, EMSC a region). place accepts a province name (Tehran, Kerman, Hormozgan, Khuzestan, Fars, Sistan and Baluchestan, Kermanshah, Razavi Khorasan, East Azerbaijan, West Azerbaijan, Bushehr, Mazandaran), which selects an approximate box that overlaps its neighbours. Other text is an English, accent-insensitive substring match. IRSC places are Town, Province.
  • IRSC: read from http://irsc.ut.ac.ir/events_list.xml (plain HTTP; its https is closed). It lists only the latest ~20 events, with no magnitude type and no history, so more is true when your dates reach further back. The data is licensed for non-commercial, humanitarian use and must cite the Iranian Seismological Center (University of Tehran).
  • Reply size: limit is at most 50. eq_stats sets truncated when the raw fetch came back full at 3000 rows.
  • Delays and revisions: feeds list small events with a delay and revise values later. USGS cold queries can take about 10 seconds.
  • What it does not do: no alerts, no push notifications, no early warning, no shaking maps, no damage estimates.
  • Network: set IRAN_QUAKE_MCP_PROXY if the feeds are not reachable directly. System proxy variables are ignored on purpose.

FAQ

Is there an MCP server for earthquakes in Iran?

Yes. iran-quake-mcp is an unofficial MCP server with 5 read-only tools. It reads the public USGS, EMSC and IRSC feeds and returns compact JSON for AI agents.

Which data sources does it use?

USGS ComCat (default), EMSC through SeismicPortal, and the Iranian Seismological Center (IRSC, University of Tehran). Pick one with the source argument. They are not merged.

How do I use it with Claude, Cursor or Copilot?

Add the server with claude mcp add iran-quake -- uvx iran-quake-mcp, or use the matching config in Quick start, then ask in plain language, in Persian or English.

Is it an earthquake warning service?

No. It reads public catalogs that list events after the fact, sometimes with a delay, and values get revised. For official information use the Iranian Seismological Center (irsc.ut.ac.ir).

What times does it use?

Each event has time_utc and time_tehran (UTC+03:30, no daylight saving). Search dates you pass are UTC.

Can I search by province or city?

Partly. The USGS and EMSC feeds have no province field. Pass a province name from the list in Good to know in place for an approximate box that overlaps neighbouring provinces, other English text to match the nearest town or region, or a bbox. IRSC rows carry Town, Province text.

Why does the IRSC source show so few events?

The IRSC feed lists only its latest ~20 events and has no history. Use usgs or emsc for longer ranges.

Why are some nearby quakes missing?

By default only events inside a coarse Iran outline are returned, so events across the border are dropped. Pass iran_only=false to include neighbours.

How do I debug what the agent sees?
bash
npx @modelcontextprotocol/inspector uvx iran-quake-mcp

Configuration

VariableDefaultMeaning
IRAN_QUAKE_MCP_PROXYunsetOptional HTTP proxy URL for reaching USGS/EMSC; system proxy settings are ignored. A comma-separated list is used one at a time: the next proxy takes over when one is blocked or cannot connect

فارسی: سرور MCP زلزله ایران

iran-quake-mcp یک سرور MCP غیررسمی و فقط‌خواندنی برای داده‌های زلزله ایران است. این سرور به دستیار هوش مصنوعی شما (Claude، Cursor، Copilot و ...) اجازه می‌دهد آخرین زلزله‌ها، زلزله‌های قوی، تاریخچه و آمار لرزه‌خیزی ایران را از منابع عمومی USGS، EMSC و مرکز لرزه‌نگاری کشوری (IRSC) بخواند.

چه کارهایی می‌کند

  • آخرین زلزله‌ها با حداقل بزرگا و تعداد ساعت گذشته، از جدیدترین.
  • جستجو بر اساس بازه تاریخ (UTC)، بزرگا، محدوده جغرافیایی و نام مکان یا استان.
  • قوی‌ترین زلزله‌ها در چند روز اخیر، از بزرگ‌ترین.
  • جزئیات یک زلزله با شناسه: عمق، نوع بزرگا، وضعیت بازبینی و منبع.
  • آمار یک بازه: تعداد به تفکیک بزرگا، پرتکرارترین مکان‌ها و قوی‌ترین رویداد.

نکته‌ها

  • فقط خواندنی است و هشدار یا پیش‌آگاهی زلزله نیست؛ برای اطلاعات رسمی به مرکز لرزه‌نگاری کشوری (irsc.ut.ac.ir) مراجعه کنید.
  • زمان هر رویداد هم به UTC و هم به وقت تهران (UTC+03:30) داده می‌شود؛ عمق به کیلومتر است.
  • منابع با هم ادغام نمی‌شوند و شناسه‌هایشان فرق دارد. منبع IRSC فقط حدود ۲۰ رویداد آخر را دارد.
  • فیلد استان در USGS و EMSC وجود ندارد؛ نام استان (به انگلیسی، مثل Kerman) محدوده تقریبی آن را انتخاب می‌کند.
  • کلید API لازم نیست و روی سیستم خود شما اجرا می‌شود. در صورت نیاز متغیر IRAN_QUAKE_MCP_PROXY را روی یک پراکسی HTTP بگذارید.

نصب (اول uv را نصب کنید). در Claude Code:

bash
claude mcp add iran-quake -- uvx iran-quake-mcp

در Claude Desktop، Cursor و بقیه برنامه‌ها همان تنظیم بخش Quick start را بگذارید.

نمونه پرسش‌ها

  • «آخرین زلزله‌های ایران در ۲۴ ساعت گذشته کدام‌اند؟»
  • «قوی‌ترین زلزله‌های ماه اخیر در ایران را نشان بده.»
  • «آیا این هفته در کرمان زلزله بالای ۴ ریشتر آمده؟»
  • «آمار زلزله‌های ایران در ۳۰ روز گذشته را بده.»

Development

bash
git clone https://github.com/sepehr071/iran-quake-mcp && cd iran-quake-mcpuv syncuv run ruff check . && uv run ruff format --check .uv run python -m pytest -q          # offline unit testsuv run python -m pytest -m live -q  # calls the real USGS/EMSC feedsuv build

All tools live in src/iran_quake_mcp/quakes.py; each is a typed async function with a docstring that tells the agent when to use it. Issues and PRs are welcome.

Releases: bump the version in pyproject.toml and server.json, then push a v* tag. GitHub Actions publishes to PyPI.

Related servers

Disclaimer

Unofficial and not affiliated with or endorsed by USGS, EMSC or the Iranian Seismological Center. It is read-only. Earthquake data is informational, can be delayed and is revised by the sources; this is not a warning service. Check each source's terms of use: IRSC data is licensed for non-commercial, humanitarian use and must cite the Iranian Seismological Center (University of Tehran).

Author

[Sepehr Radmard: open-source MCP servers for the Iranian web. LinkedIn: linkedin.com/in/sepehr-radmard]

Built and maintained by Sepehr Radmard (سپهر رادمرد). Connect on LinkedIn or follow @sepehr071 on GitHub for more MCP servers for Iranian websites, all listed in iran-mcp. If this saves you time, a star on the repo helps other people find it.

License

MIT

來源:README.md,提交 3635b9e

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

4
  1. v0.2.0最新Nov 7, 2026
  2. v0.1.2Oct 23, 2026
  3. v0.1.1Oct 22, 2026
  4. v0.1.0Oct 20, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分