mcpField
S
seismic-mcp

seismic-mcp

本地服务
github.com/hoon1983科研与教育118 周前更新

关于 seismic-mcp

seismic-mcp 是用于查询 20 家地震机构报告的 MCP 服务,可跨来源匹配事件并指出震级、位置和深度差异,适用于研究与态势了解;它不是地震预警系统。

主要功能

  1. 01并行查询 20 家地震机构
  2. 02跨机构事件匹配
  3. 03选择主报告
  4. 04检测震级、位置和深度差异
  5. 0560 秒 TTL 缓存
  6. 06带地图和对比视图的 HTTP 界面

适用场景

  1. 01查看同一地震的多机构报告
  2. 02检查不同机构读数的差异
  3. 03按机构浏览近期事件
  4. 04在地图上人工查看地震报告

MCP 相关

提供七种 MCP 工具,用于查找和获取事件、比较来源、发现差异及列出机构信息。相同功能也可通过 HTTP 前端使用。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"hoon1983-seismic": {
"command": "uvx",
"args": [
"seismic-mcp"
]
}
}
}
启动命令uvx seismic-mcp

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

安装包
pypiseismic-mcp0.1.0

工具

7

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitinteger否
agenciesany否
end_timeany否
radius_kmany否
center_latany否
center_lonany否
start_timeany否
max_latitudeany否
min_latitudeany否
max_longitudeany否
max_magnitudeany否
min_longitudeany否
min_magnitudeany否

详细介绍

seismic-mcp

一个统一的 Model Context Protocol 服务,用于获取全球地震数据。并行查询 20 个地震机构;匹配不同机构报告的同一场地震;呈现震级和位置差异,让 AI Agent 看到单一数据源可能掩盖的信息。

状态

已实现:

  • 已接入 20 个机构。 FDSN-event:USGS、EMSC、IRIS、INGV、GeoNet、GFZ、NOA、IPGP、NCEDC、SCEDC、ISC、SED、BMKG、NIEP、RESIF、KNMI、NRCAN。自定义(非 FDSN):JMA(日本)、AFAD(土耳其)、IMO(冰岛)。
  • 跨机构数据协调。 时空聚类、主报告选择(当地主管机构 > 欧洲地区的 EMSC > USGS)、差异检测(震级/位置/深度差异)。经审查的公告优先于初步报告。
  • 七个 MCP 工具: find_events、get_event、compare_sources、find_discrepancies、list_recent_by_agency、get_agency_info、list_agencies。
  • TTL 缓存(60 s),并对进行中的请求去重:重复查询耗时不到 100 ms。
  • 57 个单元测试,覆盖解析器、匹配、主报告选择、主管机构、数据协调和缓存。
  • HTTP 前端,用于手动检查:表单 + Leaflet 地图 + 并排比较抽屉。

尚未实现:EMSC eventid 映射(交叉引用 USGS/EMSC ID,以实现更精确的匹配)、填充 known_aliases.json、按事件设置多区域主管机构(土耳其同时纳入 KOERI 和 AFAD)。

安全

提供多个地震机构的报告数据,用于研究、新闻报道、态势感知和兴趣探索。它不是预警系统。地震报告到达时,报告所在地已经发生震动。有关地震防灾准备和应急响应,请咨询当地官方机构(USGS ShakeAlert、JMA Earthquake Early Warning 等)。报告机构通常会修订初步震级和位置;切勿依据单一读数作出安全决策。

运行

作为 MCP 服务运行(Claude Desktop、VS Code 等)

发布到 PyPI 后,无需检出代码库 — uvx 会获取并运行它:

uvx seismic-mcp

添加到 claude_desktop_config.json — Windows 路径为 %APPDATA%\Claude\claude_desktop_config.json,macOS 路径为 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "seismic": {
      "command": "uvx",
      "args": ["seismic-mcp"]
    }
  }
}

也可以从本地检出的代码库运行(用于开发):

uv sync
uv run python server.py

重启 Claude Desktop。工具会显示在工具菜单的 seismic-mcp 服务下。

作为 Web 前端运行(手动检查)
uv run python web.py

然后打开 http://127.0.0.1:8765/。使用与 MCP 服务相同的代码路径,只是通过 HTTP 配合简易界面提供服务。

测试
uv run pytest

架构

server.py              FastMCP entry point — 7 @mcp.tool functions
web.py                 FastAPI HTTP wrapper around the same tools
src/
  schemas.py           Pydantic models: SourceReport, ReconciledEvent, ...
  adapters/
    base.py            SeismicAdapter protocol
    fdsn.py            Header-aware FDSN-event adapter (handles 17 networks)
    afad.py            Custom AFAD JSON adapter
    jma.py             Custom JMA list.json adapter
    imo.py             Custom IMO GeoJSON adapter
    __init__.py        Registry: make_adapter(code), supported_agencies()
  authorities.py       Regional-authority bbox lookup
  matching.py          Spatiotemporal clustering with mag-scaled thresholds
  prime_selection.py   Headline-report selection rules
  reconcile.py         Cluster → ReconciledEvent with spreads
  cache.py             TTL cache + in-flight de-dup
  tools/               One file per MCP tool
data/
  agency_metadata.json    Per-agency coverage, latency, notes
  region_authorities.json Region bboxes → authoritative agency
  known_aliases.json      (manual fallback for matching, currently {})
tests/                 pytest suite — 57 tests, fast (<1s)
static/index.html      Single-page UI for the HTTP frontend

评论

支持 Markdown

第一次接触 MCP?

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

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