Seismic Mcp

io.github.hoon1983Published by GitHub account hoon1983v0.1.0Updated Oct 24, 2026

Unified earthquake data from 20 global seismic agencies, with cross-agency report reconciliation.

VerifiedSTDIODesktop onlyWeb Search & ScrapingData & Analytics

Overview

AI-generated overview

Aggregates earthquake reports from 20 global seismic agencies and reconciles them, letting an assistant query events and compare conflicting magnitudes and…

What you can do
  • Find and retrieve earthquake events from 20 seismic agencies, filtered by query parameters
  • Compare how different agencies report the same event and list discrepancies in magnitude, location and depth
  • List recent events per agency and look up agency coverage and metadata
  • Reconcile cross-agency reports by spatiotemporal clustering and pick a headline report by authority rules
When to use it
Useful for research, journalism, situational awareness or curiosity about earthquakes, especially when you want to see how agencies disagree rather than trusting a single feed.
Requirements
Runs locally over stdio as a Python package, typically launched with uvx (or from a local checkout with uv). Needs network access to reach the agencies' public data feeds. No accounts, API keys or environment variables are declared.
Before you install
It is not an early-warning system; all reports arrive after shaking has occurred, and preliminary magnitudes and locations are routinely revised. Do not base safety decisions on a single reading; consult official local authorities for preparedness and emergency response.

Installation

In SourceWeft

  1. Open Seismic Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

seismic-mcp

A unified Model Context Protocol server for global earthquake data. Queries 20 seismic agencies in parallel; matches cross-agency reports of the same earthquake; surfaces magnitude and location discrepancies so AI agents can see what one feed alone would hide.

Status

Working:

  • 20 agencies wired up. FDSN-event: USGS, EMSC, IRIS, INGV, GeoNet, GFZ, NOA, IPGP, NCEDC, SCEDC, ISC, SED, BMKG, NIEP, RESIF, KNMI, NRCAN. Custom (non-FDSN): JMA (Japan), AFAD (Türkiye), IMO (Iceland).
  • Cross-agency reconciliation. Spatiotemporal clustering, prime-report selection (local authority > EMSC for Europe > USGS), discrepancy detection (magnitude/location/depth spread). Reviewed bulletins trump preliminary.
  • Seven MCP tools: find_events, get_event, compare_sources, find_discrepancies, list_recent_by_agency, get_agency_info, list_agencies.
  • TTL cache (60 s) with in-flight de-dup: repeated queries are sub-100 ms.
  • 57 unit tests covering parsers, matching, prime-selection, authorities, reconciliation, and cache.
  • HTTP frontend for manual inspection: form + Leaflet map + side-by-side compare drawer.

Not yet built: EMSC eventid mapping (cross-references USGS/EMSC IDs for tighter matching), populated known_aliases.json, multi-region per-event authority (KOERI alongside AFAD for Türkiye).

Safety

Reports earthquake data from multiple seismic agencies for research, journalism, situational awareness, and curiosity. It is NOT an early-warning system. All earthquake reports arrive AFTER shaking has already occurred where it was felt. For earthquake preparedness and emergency response, consult official local authorities (USGS ShakeAlert, JMA Earthquake Early Warning, etc.). Preliminary magnitudes and locations are routinely revised by reporting agencies; never make safety decisions based on a single reading.

Run

As an MCP server (Claude Desktop, VS Code, etc.)

Once published to PyPI, no checkout is needed — uvx fetches and runs it:

bash
uvx seismic-mcp

Add to claude_desktop_config.json — Windows path is %APPDATA%\Claude\claude_desktop_config.json, macOS ~/Library/Application Support/Claude/claude_desktop_config.json:

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

To run from a local checkout instead (development):

bash
uv syncuv run python server.py

Restart Claude Desktop. The tools appear under the seismic-mcp server in the tools menu.

As a web frontend (manual inspection)

bash
uv run python web.py

Then open http://127.0.0.1:8765/. Same code paths as the MCP server, just exposed over HTTP with a small UI.

Tests

bash
uv run pytest

Architecture

server.py              FastMCP entry point — 7 @mcp.tool functionsweb.py                 FastAPI HTTP wrapper around the same toolssrc/  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 tooldata/  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

Source: README.md at commit ed7a00f

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts