mcpField
I
Iran Earthquakes

Iran Earthquakes

本地服务
github.com科研与教育06 天前更新

关于 Iran Earthquakes

Iran Earthquakes 是供 Agent 查询地震目录的只读 MCP 服务,数据来自 USGS、EMSC 和 IRSC。它面向伊朗提供事件搜索与统计,并保留各数据源结果及 UTC、德黑兰时间。

主要功能

  1. 01查看最新地震列表
  2. 02按日期、震级、地点或范围搜索
  3. 03列出近期最强地震
  4. 04获取单次地震详情
  5. 05汇总地震活动统计

适用场景

  1. 01查询某城市或省份附近的近期地震
  2. 02查找指定时段内震级最大的事件
  3. 03查看事件深度和来源详情
  4. 04按震级区间查看地震数量

MCP 相关

通过 stdio 向 MCP 客户端提供五种只读工具,可查询 USGS、EMSC 和 IRSC 的公开地震数据源。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"sepehr071-iran-quake": {
"command": "uvx",
"args": [
"iran-quake-mcp"
],
"env": {
"IRAN_QUAKE_MCP_PROXY": "<IRAN_QUAKE_MCP_PROXY>"
}
}
}
}
启动命令uvx iran-quake-mcp
需要配置的环境变量
IRAN_QUAKE_MCP_PROXYOptional HTTP proxy URL for reaching USGS/EMSC; system proxy settings are ignored. Also accepts a comma-separated list: one is used until it gets blocked or fails to connect, then the next.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiiran-quake-mcp0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

iran-quake-mcp:面向 AI Agent 的伊朗地震 MCP 服务

让你的 AI Agent 查询伊朗最新地震(زلزله ایران)。
一个非官方、只读的 MCP 服务,提供来自 USGS、EMSC 和 伊朗地震中心 的地震数据:
最新地震、历史搜索、最强地震、单次地震详情和活动统计,可通过 Claude、Cursor 或 Copilot 使用。

PyPI Python CI MCP 注册表 许可证:MIT

在 VS Code 中安装

面向 AI Agent · 快速开始 · 功能介绍 · 工具 · 常见问题 · فارسی


面向 AI Agent

  • **简介:**面向伊朗地震的非官方 MCP 服务(模型上下文协议)。数据源:USGS ComCat(source="usgs",默认)、通过 SeismicPortal 获取的 EMSC 数据(source="emsc")和伊朗地震中心(source="irsc",仅包含其最新约 20 条事件,并提供省份名称)。不同数据源不会合并;它们的事件 ID 各不相同。
  • 安装:uvx iran-quake-mcp 或 claude mcp add iran-quake -- uvx iran-quake-mcp。传输方式:stdio。需要安装 uv(Python 3.10+)。
  • **身份验证:**无需身份验证、API 密钥或账户。可选设置 IRAN_QUAKE_MCP_PROXY(HTTP 代理 URL 或逗号分隔的列表);系统代理设置会被忽略。
  • **访问权限:**只读。无法写入或订阅,因此调用任何工具前都无需确认。
  • **工具:**共 5 个,名称均以 eq_ 开头。典型调用顺序:eq_latest 或 eq_significant -> 使用列表中的 ID 调用 eq_detail。按日期范围、边界框或地点搜索时使用 eq_search;查询数量时使用 eq_stats。
  • **适用场景:**用户询问伊朗近期或过去的地震、最强地震、某个省份或城市附近的地震,或某个时期的地震活动情况时。
  • **不适用场景:**用户需要官方警告或警报(这不是预警服务;请参阅伊朗地震中心 irsc.ut.ac.ir),或询问伊朗及其邻国以外的地震时。
  • 单位:time_utc(UTC)和 time_tehran(UTC+03:30,不实行夏令时);搜索日期使用 UTC;depth_km 的单位为千米;mag_type(mb、ml、mw……)表示震级类型。
  • **回复:**每次调用最多返回 50 条事件(limit 为 1-50),最多约 12 KB,不超过 15 KB。
  • 机器可读信息:server.json 和 iran-mcp 目录。

为什么

地震数据源是为地震学家设计的:服务器各不相同,ID 格式不同,时间戳使用 UTC,也没有省份字段。要问“本周克尔曼附近有没有 4.5 级以上地震?这个月伊朗最强的一次是什么?”,就得查询地图或搜索表单,还要手动换算时间。使用 iran-quake-mcp,Agent 只需调用几次工具就能回答,并给出简短摘要,时间采用德黑兰时间,深度单位为千米。

你: 过去 30 天里,伊朗发生过强震吗?

Agent: 调用 eq_significant(days=30, min_magnitude=5.0) -> 对最大的一次调用 eq_detail(...)

它会按震级从大到小列出事件,并提供震级、地点、深度和德黑兰时间,然后补充最大一次事件的审核状态和有感报告。

每条回复都不超过 15 KB(最大约 12 KB),不会占满 Agent 的上下文。

功能

  • 按最低震级和回溯小时数查询伊朗最新地震,按时间从新到旧排列
  • 按 UTC 日期范围、震级范围、边界框和地点文本搜索,并按时间或震级排序
  • 查询过去 N 天内的最强地震,按震级从大到小排列
  • 按 ID 查询单个事件的完整信息:USGS 提供审核状态、有感/震感、海啸标记和质量信息;EMSC 提供机构和更新时间;IRSC 提供最近城镇
  • 查询时间范围内的统计数据:按震级区间统计数量、热门地点和最强事件
  • 一个服务整合三个数据源:USGS、EMSC 和伊朗地震中心
  • 按设计仅支持读取:不会写入数据或订阅内容

示例提示词:

  • “显示过去 48 小时内伊朗所有 4 级及以上地震。”
  • “过去一年里,伊朗最强的 10 次地震是什么?”
  • “这个月克尔曼附近有地震吗?”
  • “给我过去 30 天伊朗的地震统计数据。”
  • “提供伊朗地震中心数据源中最新一次地震的详情,包括省份。”
  • آخرین زلزله‌های ایران در ۲۴ ساعت گذشته کدام‌اند؟
  • قوی‌ترین زلزله‌های ماه اخیر در ایران را با عمق و ساعت تهران بده.
  • آیا در هفته گذشته در هرمزگان زلزله بالای ۴ ریشتر آمده؟

快速开始

你需要安装 uv。无需 API 密钥或账号。

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

前往“设置” →“开发者”→“编辑配置”,然后添加:

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

将上面的 Claude Desktop 配置块添加到 ~/.cursor/mcp.json(或项目中的 .cursor/mcp.json)。

VS Code(Copilot Agent 模式)

点击上方的 在 VS Code 中安装,或添加到 .vscode/mcp.json:

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

或者添加到 ~/.codex/config.toml:

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

添加到 ~/.gemini/settings.json:

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

将 Claude Desktop 配置块添加到 ~/.codeium/windsurf/mcp_config.json。

其他客户端

这是一个标准的 stdio MCP 服务:运行 uvx iran-quake-mcp,或者运行 pip install iran-quake-mcp 后再运行 iran-quake-mcp。

## 工具

列表工具(eq_latest、eq_search、eq_significant、eq_stats)可选参数为 source(默认为 usgs、emsc、irsc)和 iran_only(默认为 true)。

工具功能
eq_latest按时间倒序列出伊朗最近发生的地震
eq_search按日期范围、震级、边界框和地点文本搜索伊朗地震
eq_significant按震级从高到低列出伊朗近期最强的地震
eq_detail获取一场地震的完整信息:位置、depth_km、震级类型和数据源质量字段
eq_stats统计指定时间段内伊朗地震的数量:按震级区间、地点统计,并列出最强事件

这 5 个工具均标注为 readOnlyHint: true。

工作原理

  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 在本地运行,并调用 USGS、EMSC 和 IRSC 的公共数据源。中间没有托管服务,也不需要 API 密钥。它每次最多发送 2 个请求,中间加入少量随机延迟,缓存结果 60 秒;GET 请求失败时最多重试 4 次(USGS 偶尔会返回 502);响应正文大小上限为 5 MB,且只与这三个主机通信。它只读取数据。

须知

  • 时间:time_utc 为 UTC,time_tehran 为 UTC+03:30(自 2022 年起不再实行夏令时)。搜索日期均为 UTC。深度字段为 depth_km,数值为正。
  • **震级:**类型在 mag_type 中(mb、ml、mw 等)。不同类型或数据源的数值无法完全直接比较。
  • **数据源相互独立:**结果不会合并或去重,ID 也各不相同。eq_detail 只接受事件 ID,并根据其格式识别数据源:EMSC 的 ID 格式为 20261014_0000009,IRSC 的 ID 为 213549 这类纯数字(仅能在其最近约 20 个事件中找到),其他格式则归为 USGS。
  • **默认仅限伊朗境内:**事件必须位于伊朗的大致边界范围内(陆地边界约留出 0.3 度余量,另包括波斯湾、阿曼湾和里海的伊朗水域),且地点文本必须包含伊朗、波斯湾、阿曼湾或里海。边境另一侧的事件会被排除。iran_only=false 则返回 24-40 N、43.5-64 E 范围内的所有事件。
  • **地点:**USGS 和 EMSC 没有省份字段(USGS 提供最近的城镇,EMSC 提供地区)。place 可接受省份名称(Tehran、Kerman、Hormozgan、Khuzestan、Fars、Sistan and Baluchestan、Kermanshah、Razavi Khorasan、East Azerbaijan、West Azerbaijan、Bushehr、Mazandaran),并据此选取可能与相邻省份重叠的大致范围。其他文本会按英文、不区分重音符号的子字符串进行匹配。IRSC 的地点格式为 Town, Province。
  • **IRSC:**数据读取自 http://irsc.ut.ac.ir/events_list.xml(纯 HTTP;其 HTTPS 已关闭)。该源仅列出最近约 20 个事件,不提供震级类型或历史记录,因此当日期范围延伸到更早时期时,more 为 true。数据仅获准用于非商业和人道主义用途,且必须注明伊朗地震中心(德黑兰大学)。
  • 回复大小:limit 最大为 50。如果原始抓取结果达到 3000 行,eq_stats 会将 truncated 设为 true。
  • **延迟和修订:**数据源会延迟列出小规模地震,也会在之后修订数值。USGS 的冷查询可能需要约 10 秒。
  • **不提供的功能:**不提供警报、推送通知、地震预警、震动地图或损失估算。
  • **网络:**如果无法直接访问数据源,请设置 IRAN_QUAKE_MCP_PROXY。系统代理变量会被有意忽略。

常见问题

有提供伊朗地震数据的 MCP 服务吗?

有。iran-quake-mcp 是一个非官方 MCP 服务,提供 5 个只读工具。它会读取 USGS、EMSC 和 IRSC 的公开数据源,并为 AI Agent 返回精简的 JSON。

它使用哪些数据源?

USGS ComCat(默认)、通过 SeismicPortal 获取的 EMSC 数据,以及伊朗地震中心(IRSC,德黑兰大学)的数据。 使用 source 参数选择其中一个。它们不会合并。

如何在 Claude、Cursor 或 Copilot 中使用?

使用 claude mcp add iran-quake -- uvx iran-quake-mcp 添加服务,或使用快速开始中的相应配置,然后用波斯语或英语提问。

这是地震预警服务吗?

不是。它读取的是事后列出事件的公开目录,有时会有延迟,而且数据可能会修订。官方信息请查看伊朗地震中心(irsc.ut.ac.ir)。

它使用什么时间?

每个事件都有 time_utc 和 time_tehran(UTC+03:30,不实行夏令时)。传入的搜索日期使用 UTC。

可以按省份或城市搜索吗?

部分支持。USGS 和 EMSC 数据源没有省份字段。要使用近似范围(可能与邻省重叠),请在 place 中传入须知列表中的省份名称;也可以传入其他英文文本,以匹配最近的城镇或地区,或者传入 bbox。IRSC 数据行包含 Town, Province 文本。

为什么 IRSC 数据源显示的事件这么少?

IRSC 数据源只列出最新的约 20 个事件,没有历史记录。要查询更长时间范围,请使用 usgs 或 emsc。

为什么有些附近的地震没有显示?

默认情况下,只返回粗略伊朗边界范围内的事件,因此会排除跨越边境的事件。传入 iran_only=false 可包含邻国事件。

如何调试 Agent 能看到的内容?
npx @modelcontextprotocol/inspector uvx iran-quake-mcp

配置

变量默认值含义
IRAN_QUAKE_MCP_PROXYunset用于访问 USGS/EMSC 的可选 HTTP 代理 URL;系统代理设置会被忽略。若提供以逗号分隔的列表,则会依次使用:某个代理被屏蔽或无法连接时,将改用下一个代理

波斯语:伊朗地震 MCP 服务

iran-quake-mcp 是一个非官方、只读的伊朗地震数据 MCP 服务。它允许您的 AI 助手(Claude、Cursor、Copilot 等)从 USGS、EMSC 和伊朗国家地震中心(IRSC)的公开来源读取 最新地震、强震、历史记录和伊朗地震活动统计数据。

功能

  • 最新地震:可按最低震级和过去小时数筛选,按最新时间排序。
  • 搜索:可按日期范围(UTC)、震级、地理范围以及地点或省份名称筛选。
  • 最强地震:显示过去几天震级最高的地震,按震级从高到低排序。
  • 地震详情:通过 ID 查看深度、震级类型、审核状态和来源。
  • 统计数据:查看指定时间范围内的地震数量(按震级分类)、最常出现的地点和最强事件。

注意事项

  • 该服务仅供查询,不提供地震警报或预测;如需官方信息,请访问伊朗国家地震中心(irsc.ut.ac.ir)。
  • 每个事件的时间同时以 UTC 和德黑兰时间(UTC+03:30)提供;深度单位为公里。
  • 各来源的数据不会合并,且使用不同的 ID。IRSC 来源仅包含最近约 20 条事件。
  • USGS 和 EMSC 不提供省份字段;省份名称(英文,例如 Kerman)会用于选择其大致范围。
  • 无需 API 密钥,并在您自己的系统上运行。如有需要,请将 IRAN_QUAKE_MCP_PROXY 变量设置为 HTTP 代理。

安装(请先安装 uv)。在 Claude Code 中:

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

在 Claude Desktop、Cursor 和其他应用中,使用 Quick start 部分中的相同配置。

示例问题

  • “过去 24 小时内伊朗发生了哪些最新地震?”
  • “请显示伊朗过去一个月最强的地震。”
  • “本周克尔曼是否发生过震级高于 4 级的地震?”
  • “请提供伊朗过去 30 天的地震统计数据。”

开发

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

所有工具都位于 src/iran_quake_mcp/quakes.py 中;每个工具都是带类型标注的异步函数,并附有说明何时使用它的文档字符串。欢迎提交问题和 PR。

发布:更新 pyproject.toml 和 server.json 中的版本,然后推送 v* 标签。GitHub Actions 会发布到 PyPI。

相关服务

免责声明

本项目未经授权,与 USGS、EMSC 或伊朗地震中心无关联,也未获其认可。本项目仅供查询。 地震数据仅供参考,可能存在延迟,且来源会对数据进行修订;本项目不提供预警服务。请查看 各来源的使用条款:IRSC 数据仅授权用于非商业、人道主义用途,且必须注明伊朗地震中心(德黑兰大学)。

作者

Sepehr Radmard:面向伊朗网络的开源 MCP 服务。LinkedIn:linkedin.com/in/sepehr-radmard

由 Sepehr Radmard(سپهر رادمرد)构建并维护。欢迎在 LinkedIn 上联系,或关注 GitHub 上的 @sepehr071,了解更多面向伊朗网站的 MCP 服务;所有服务都列在 iran-mcp 中。如果这个项目为您节省了时间,请给仓库点个星,帮助其他人发现它。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。