Wems

io.github.heliosarchitectPublished by GitHub account heliosarchitectv1.5.3Updated Oct 24, 2026

Real-time natural hazard monitoring: earthquakes, tsunamis, volcanoes, solar weather, air quality

Overview

AI-generated overview

A local MCP server that gives an assistant live natural-hazard data: earthquakes, tsunamis, volcanoes, space weather, storms, air quality and threat advisories.

What you can do
Query recent earthquakes, tsunamis, volcanoes and drought status by region or threshold, with magnitude and alert-level filtering for earthquakes and volcanoes and US state drought levels for drought status. Check space weather and solar activity, including K-index, flares, CMEs and active NOAA alerts. Track hurricanes, wildfires, severe weather and floods, including forecast tracks, fire perimeters and river gauge data. Read air quality indexes with pollutant breakdowns and threat advisories covering terrorism, travel risk and cyber threats. Adjust alert thresholds and webhook endpoints, and optionally fuse incidents across several sources.
When to use it
Useful when an assistant needs current, authoritative hazard information for risk assessment, news reporting, research or location-specific safety monitoring, or when you want critical events pushed to a webhook.
Requirements
Runs locally as a Python package (wems-mcp-server) via pip, or from source; Docker is also mentioned. It calls public hazard APIs from USGS, NOAA, NWS, Smithsonian, OpenAQ, DHS, the State Department and CISA, so network access is needed. An optional config file path can be passed through the WEMS_CONFIG environment variable.
Before you install
Alert configuration can set webhook URLs that receive event data, so point them only at endpoints you trust. The README describes Stripe metering with per-call pricing and a free tier, and mentions STRIPE_API_KEY or STRIPE_SECRET_KEY for billing; check whether billing actually applies before relying on the free tier. A one-command setup script installs a system service and an n8n workflow, which changes your machine's configuration.

Installation

In SourceWeft

  1. Open Wems 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

🌍 WEMS - World Event Monitoring System

[PyPI version] [License: MIT] [Python 3.8+] [MCP Compatible]

🚨 Real-time Natural Hazard Monitoring for AI Agents

A powerful Model Context Protocol (MCP) server that connects AI assistants to authoritative natural hazard data sources. Monitor earthquakes, tsunamis, volcanoes, and solar events with configurable alerts and webhooks.

🤖 AI Agents: Skip scanning this repo. Read AI.TOC first — it's a 500-token project map. Then use AI.INDEX to find specific functions and AI.REGISTER for env vars, APIs, and config. This project uses the LBF AI Navigation Standard.

⚡ Key Features

  • 🌋 9+ Authoritative Data Sources: USGS, NOAA, Smithsonian GVP, NHC, NIFC, OpenAQ, DHS, State Dept, CISA, US Drought Monitor
  • 🎯 Real-time Monitoring: Live data feeds with customizable thresholds
  • 🔔 Smart Alerts: Webhook notifications for critical events
  • 🗺️ Geographic Filtering: Target specific regions or global coverage
  • 🔧 Zero Configuration: Works out-of-the-box, configure only what you need
  • 🐳 Production Ready: Docker support, comprehensive error handling

Natural Hazards Covered

Hazard TypeData SourceCoverage
🌊 EarthquakesUSGSGlobal, magnitude filtering
🌊 TsunamisNOAA PTWC + CTWCGlobal ocean basins
🌋 VolcanoesSmithsonian GVP + USGSGlobal volcanic activity
☀️ Solar EventsNOAA SWPCSolar flares, CMEs, geomagnetic storms
🌞 Space Weather AlertsNOAA SWPCActive space weather alerts & warnings
🌀 HurricanesNHC + NWSAtlantic & Pacific tropical cyclones
🔥 WildfiresNWS + NIFCFire weather alerts & active perimeters
⛈️ Severe WeatherNWS AlertsTornadoes, thunderstorms, floods, winter storms
💨 Air QualityOpenAQGlobal AQI, PM2.5, PM10, O₃, NO₂, SO₂, CO
🌵 Drought ConditionsUS Drought MonitorUS state drought levels (D0-D4) + trends
🛡️ Threat AdvisoriesDHS NTAS + State Dept + CISATerrorism, travel risk, cyber threats

🚀 Quick Start

Install via PyPI (Recommended)

bash
pip install wems-mcp-server

Or install from source

bash
git clone https://github.com/heliosarchitect/wems-mcp-server.gitcd wems-mcp-serverpip install -r requirements.txt

Basic Usage

bash
# Run as MCP server (connects to AI assistants)python -m wems_mcp_server
# Test earthquake monitoringpython -c "import asynciofrom wems_mcp_server import check_earthquakesprint(asyncio.run(check_earthquakes(min_magnitude=6.0)))"

One-command AI Alerting Setup (Relay + n8n)

bash
bash scripts/setup_wems_alerting_ai.sh

This will:

  • install/start wems-unified-relay.service
  • upsert and activate the unified n8n ingest workflow
  • wire tracker posting credentials automatically

Example Output

json
{  "earthquakes_found": 3,  "events": [    {      "magnitude": 7.2,      "location": "67 km SW of Tres Picos, Mexico",      "time": "2024-02-13T14:30:15Z",      "depth": 35.8,      "tsunami_threat": true    }  ]}

MCP Tools

ToolDescription
check_earthquakesQuery recent earthquake activity
check_solarMonitor space weather (K-index, flares, CMEs)
check_volcanoesTrack volcanic activity alerts
check_tsunamisMonitor tsunami warnings
check_hurricanesTrack tropical cyclones & forecast tracks
check_wildfiresFire weather alerts & active perimeters
check_severe_weatherMonitor tornadoes, thunderstorms, flash floods
check_floodsFlood warnings & USGS river gauge data
check_air_qualityAQI monitoring with pollutant data
check_threat_advisoriesTerrorism, travel risk & cyber threat monitoring
check_space_weather_alertsActive space weather alerts & warnings from NOAA SWPC
check_drought_statusUS state drought conditions with D0-D4 levels (Premium)
configure_alertsUpdate alert thresholds and webhooks
fuse_multi_source_incidentsMulti-source incident fusion (feature-flagged)

Configuration

yaml
alerts:  earthquake:    min_magnitude: 6.0    regions: ["US", "Caribbean", "Pacific"]    webhook: "https://your-endpoint.com/earthquake"    solar:    min_kp_index: 7  # Geomagnetic storm threshold    webhook: "https://your-endpoint.com/solar"      volcano:    alert_levels: ["WARNING", "WATCH"]    webhook: "https://your-endpoint.com/volcano"      tsunami:    enabled: true    regions: ["pacific", "atlantic", "indian"]    webhook: "https://your-endpoint.com/tsunami"

Data Sources

  • USGS Earthquake Hazards Program
  • NOAA Pacific Tsunami Warning Center
  • NOAA Central Tsunami Warning Center
  • Smithsonian Global Volcanism Program
  • NOAA Space Weather Prediction Center
  • National Hurricane Center (NHC)
  • National Interagency Fire Center (NIFC)
  • NWS Alerts API
  • OpenAQ (Global Air Quality)
  • DHS National Terrorism Advisory System (NTAS)
  • U.S. State Department Travel Advisories
  • CISA Cybersecurity Advisories

OpenClaw Integration

Add to your OpenClaw configuration:

json
{  "mcpServers": {    "wems": {      "command": "python3",      "args": ["/path/to/wems-mcp-server/wems_mcp_server.py"],      "env": {        "WEMS_CONFIG": "/path/to/config.yaml"      }    }  }}

🎯 Use Cases

  • 🏢 Enterprise Risk Management: Automated threat assessment for global operations
  • 📺 News Organizations: Real-time natural disaster reporting and alerts
  • 🔬 Research Institutions: Data collection for scientific analysis
  • 🏠 Personal Safety: Location-specific hazard monitoring for families
  • 🤖 AI Emergency Response: Integration with disaster response chatbots
  • 📱 Alert Systems: Custom notification workflows for critical events

🔧 Advanced Configuration

yaml
# config.yaml - Full customization examplealerts:  earthquake:    min_magnitude: 6.0    regions: ["US", "Caribbean", "Pacific"]    webhook: "https://your-endpoint.com/earthquake"      solar:    min_kp_index: 7  # G3+ geomagnetic storm    webhook: "https://your-endpoint.com/solar"      volcano:    alert_levels: ["WARNING", "WATCH"]     regions: ["Cascade Range", "Ring of Fire"]    webhook: "https://your-endpoint.com/volcano"      tsunami:    enabled: true    regions: ["pacific", "atlantic", "indian"]    webhook: "https://your-endpoint.com/tsunami"

📊 Monitoring Dashboard

Pair with monitoring tools for comprehensive coverage:

bash
# Example: Send earthquake data to monitoring systemcurl -X POST https://your-monitoring.com/api/events \  -H "Content-Type: application/json" \  -d "$(python -c 'import wems; print(wems.get_recent_earthquakes())')"

💳 Billing & Monetization (Current)

WEMS now includes Stripe metering scaffolding and affordable default pricing.

Current pricing defaults

  • Free tier: 5,000 calls per rolling 30 days
  • 0–100,000 calls: $0.0010/call
  • 100,001–500,000 calls: $0.0008/call
  • 500,001+ calls: $0.0006/call

Accessory call weights (default)

  • Most tools: 1 unit
  • check_space_weather_alerts: 2 units
  • fuse_multi_source_incidents: 3 units

Billing config

See: config/wems_stripe_billing.json

Key fields:

  • event_name
  • api_key_to_customer
  • billing_units.default
  • billing_units.by_tool
  • pricing.free_calls_per_rolling_30d
  • pricing.tiers[]

Stripe key source

  1. STRIPE_API_KEY or STRIPE_SECRET_KEY (direct env)

WEMS uses best-effort lookup and never blocks alerting if billing key resolution fails.


Built with ❤️ for the AI community by Helios 🌞

Part of the expanding OpenClaw ecosystem

Source: README.md at commit 1941432

Tools

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

Version history

1
  1. v1.5.3LatestSep 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