Stormaxis Mcp
About
Real-time US storm intelligence for roofing and restoration contractors. Scored opportunities, property targeting, canvass routing, and FEMA claim data from live NOAA/SPC feeds.
Details
- Author
- walker-capital
- Downloads
- 263
- Categories
- Other
Jump to
- Real-time US storm tracking from NOAA/NWS data
- Automatic storm opportunity scoring (0–100) based on severity, property values, roof age, and claim history
- Property targeting lists and H3-optimized canvass clusters
- Insurance claim propensity analytics by state
- Pre-built prompt templates: storm_assessment and property_search
- Webhook subscriptions (Enterprise tier) for real-time alerts
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Stormaxis McpCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Sign up at stormaxis.io/partner for a Partner API key (requires Growth tier $199/mo or above). Then add the server to Claude Code using claude mcp add stormaxis --transport sse --url https://stormaxis.io/api/mcp/sse --header "X-API-Key: YOUR_API_KEY". Alternative setups include using mcp-remote with Claude Desktop or installing the stormaxis-mcp npm package as a stdio server.
get_storm_overview
Get a real-time overview of active storm activity across the US. Returns active storm counts by type (hail, tornado, wind, flood), top affected states, and current SPC convective outlook level. Updated every 15 minutes from live NOAA/SPC feeds. No parameters required. Use this as a starting point to understand current storm conditions before drilling into specific opportunities.
get_forecast_opportunities
Get scored forecast opportunities — storms that haven't hit yet. Analyzes today's and tomorrow's SPC convective outlooks (hail, wind, tornado probability polygons) and cross-references with property exposure data to predict WHERE the best revenue opportunities will be BEFORE storms actually hit. Returns ranked opportunities with: threat type, probability, estimated hail size/wind speed, buildings at risk, estimated revenue, and top affected cities. Use this to give contractors advance notice of where to position crews and pre-stage materials. No parameters required.
get_top_opportunities
Get top-scored storm opportunities from the last 30 days. Returns storms ranked by opportunity score (0-100) with revenue estimates, affected property counts, and classification. Args: state: Filter by 2-letter state code (e.g. 'TX', 'OK'). Optional. min_score: Minimum opportunity score threshold (0-100). Default 60. limit: Maximum results. Default 10, max 50.
get_storm_score
Get the detailed opportunity score breakdown for a specific storm. Returns the composite score (0-100) and breakdown by component: - Storm Relevance: recency, magnitude, NWS confirmation - Property Economics: avg property value, roof age, density - Replacement Probability: ML model prediction Args: storm_id: The storm noaa_event_key or episode ID.
search_properties
Search the property database for targetable properties in a ZIP code. Returns property records with: owner name, property address, building sqft, roof age estimate, property value, and owner type. Args: zip_code: 5-digit US ZIP code (e.g. '76109'). owner_type: Filter by 'individual', 'joint', or 'entity'. Optional. min_roof_age: Minimum roof age in years. Optional. min_sqft: Minimum building square footage. Optional. limit: Max results. Default 50, max 100.
get_property_storm_history
Get a full storm history + roof damage report for a single property address. Geocodes the address, snaps to the nearest Overture building footprint, pulls every storm polygon within 1 km whose begin_time falls inside the lookback window, joins per-storm damage signals (replacement-probability ML score), and returns an estimated repair cost band plus FEMA claim propensity for the property's ZIP. Use this when a user asks something like "has this house been hit?", "what's the damage at <address>?", or "should I door-knock this property?". For batch lookups (>5 addresses at once), recommend the /api/v1/commercial/roof-report/bulk REST endpoint instead — this tool is sized for one address at a time. Args: address: Full US street address — e.g. "123 Main St, Austin TX 78701". Ambiguous or un-geocodable addresses return an error. lookback_days: How many days back to scan storm history. Default 90. Range 1–3650 (10 years). years: Convenience alias — same as lookback_days but expressed in years. If both are provided, ``years`` wins. SA-11: previously silently ignored; now correctly mapped to lookback_days = years * 365. Returns JSON with: - coordinates: {lat, lng} from Nominatim geocode - building: nearest Overture building (class, footprint_sqft, roof_material, etc.) - storm_history: events, direct_hits count, and per-event detail - damage_assessment: replacement_probability and worst_event - estimated_repair_cost: {low_usd, expected_usd, high_usd} - claim_propensity: FEMA registrants + approved $ for the property's ZIP - audit_trail: request_id + data_sources used (replayable via /audit/{request_id})
get_canvass_clusters
Get pre-computed H3 canvass clusters for a storm event. Returns hexagonal grid clusters ranked by canvass priority. Pre-computed at scoring time for instant results. Each cluster: center coords, buildings, values, roof age, priority score. Args: storm_id: Storm episode ID (e.g. "1774224000870"). min_score: Minimum priority score (0-1). Default 0.3. limit: Max clusters. Default 20.
generate_neighborhood_targeting
Generate neighborhood-level door-knocking targets for a storm. Returns ZIP clusters ranked by canvass priority with property details. Each cluster includes: buildings, roof ages, property values, distance from storm center, and individual property addresses with owner names. Use this to plan canvassing routes — start with the highest priority clusters (older roofs, more buildings, closer to storm center). Args: storm_id: Storm episode ID (e.g. "1774224000870") or noaa_event_key. radius_miles: Search radius from storm center. Default 15 miles. min_roof_age: Only include areas with roofs this age or older. Default 10 years. limit: Max clusters to return. Default 20.
get_insurance_propensity
Get insurance claim propensity data by state/region. Returns claim culture scores indicating how likely property owners in each state are to file insurance claims after storm damage. Higher scores = more claim-friendly = better for contractors. Args: state: Filter to a specific state (2-letter code). Optional.
get_fema_claims
Get historical FEMA NFIP flood insurance claims for a state. Returns aggregated claim data showing frequency and dollar amounts of flood-related insurance claims by ZIP code and year range. Args: state: 2-letter state code (required). year_start: Start year for query range. Default 2015. year_end: End year for query range. Default 2026.
get_pipeline_status
Check the health and status of the StormAxis data pipeline. Returns: last ingestion timestamps for each data source, record counts, data freshness indicators, and any active pipeline alerts. Use this to verify data recency before making decisions based on storm data.
get_water_events
Get active water damage events in a contractor's territory, scored by urgency for restoration response prioritization. Returns events ranked by urgency score with estimated revenue, hours since onset, and damage category (pipe_burst, flood, storm_drain_backup, sewer_backup, appliance_failure, roof_leak). Args: org_id: Organization ID of the requesting contractor. min_tier: Minimum urgency tier to return. One of "critical", "high", "moderate", "low". Default "moderate". limit: Maximum number of events to return. Default 20, max 100.
get_water_urgency_score
Get the current water damage urgency score for a ZIP code, including factor breakdown and revenue estimate. Scores are computed from 6 weighted factors: - hours_since_onset (time decay — urgency peaks 0–6 h, drops after 72 h) - nfip_density (flood insurance policy concentration) - building_age_risk (pre-1960 structures heavily weighted) - nws_event_severity (NWS watch/warning/advisory classification) - soil_saturation_index (antecedent moisture from USDA/SNODAS) - prior_claim_rate (ZIP-level historical NFIP claim frequency) Args: zip_code: 5-digit ZIP code to score. event_id: Specific water event ID to score against. If omitted, scores against the highest-urgency active event in the ZIP.
get_dispatch_properties
Get a prioritized property list for water restoration dispatch after a water event. Properties are ranked by urgency score, damage category, NFIP coverage likelihood, and prior claim history. Use this to build the dispatch call list and load into your CRM immediately after an event triggers. First mover advantage is critical — the window for emergency restoration work closes fast. Args: event_id: Water event ID to dispatch against. org_id: Organization ID of the dispatching contractor. limit: Maximum properties to return. Default 100, max 500. min_urgency: Minimum property-level urgency score (0.0–1.0). Default 0.0.
get_door_knock_script
Get a customized door-knock script for water restoration canvassing based on event type and property profile. Scripts are tailored to NWS event type (flood vs. freeze vs. storm drain) and include insurance-specific language when NFIP density is high in the ZIP. Args: event_type: NWS event type string, e.g. "Flash Flood Warning", "Hard Freeze Warning", "Areal Flood Advisory". zip_code: 5-digit ZIP code for property-specific customization. Optional. contractor_name: Contractor company name for script personalization. Optional.
get_mold_risk_alerts
Get active mold risk alerts for open water restoration jobs. Alerts fire when elapsed time combined with humidity forecast indicates mold onset is imminent (typically 24–48 h after water intrusion at >60% RH). Use this to prioritize follow-up calls on open jobs and upsell mold remediation before it becomes visible. Args: org_id: Organization ID of the contractor. min_risk_score: Minimum mold risk score (0.0–1.0) to return. Default 0.6.
get_stream_gauge_status
Get real-time USGS stream gauge readings near a location. Indicates active riverine flooding risk with 6–24 hour lead time before water reaches downstream properties. Gauges above "action stage" signal imminent flood dispatch opportunities. Gauges at "flood stage" or above indicate active inundation in progress. Args: zip_code: 5-digit ZIP code to find nearby gauges. Use this OR lat/lon. lat: Latitude decimal degrees (WGS84). Use with lon instead of zip_code. lon: Longitude decimal degrees (WGS84). Use with lat instead of zip_code. radius_km: Search radius in kilometers. Default 75.
get_water_dashboard_summary
Get water restoration dashboard KPIs for a contractor organization. Returns a snapshot suitable for rendering the water restoration dashboard widget: active event count, total revenue opportunity, mold alerts, jobs created in the last 30 days, and top urgency ZIP codes. Args: org_id: Organization ID of the contractor.
get_territory_water_risk
Get a water damage risk profile for a contractor's service territory. Identifies highest-risk ZIP codes by building age, NFIP policy density, CSO (combined sewer overflow) community exposure, and soil saturation. Use this to prioritize marketing spend and pre-position crews. Args: org_id: Organization ID of the contractor. include_zips: If True, include per-ZIP risk breakdown in the response. Default False (summary only).
get_nfip_density
Get NFIP flood insurance policy density for a ZIP code. High NFIP density indicates a strong flood claim filing culture and higher probability of insurance-paid restoration jobs. Density above ~20 policies per 100 housing units is considered high signal territory. Policy data sourced from FEMA NFIP policy-in-force dataset, refreshed monthly. Args: zip_code: 5-digit ZIP code to look up.
get_building_age_profile
Get building age cohort data for a ZIP code. Building age is the #1 predictor of pipe burst and water intrusion risk. Pre-1960 structures have galvanized supply pipes and no vapor barriers. 1960–1980 structures have polybutylene pipe (recalled, failure-prone). Post-2000 structures have modern PEX but may have improper grading. Age cohort percentages are derived from Census ACS 5-year estimates and county assessor parcel data. Args: zip_code: 5-digit ZIP code to profile.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"stormaxis mcp": {
"stormaxis": {
"transport": "streamable-http",
"url": "https://stormaxis.io/api/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}
}
McpServers
{
"stormaxis": {
"transport": "streamable-http",
"url": "https://stormaxis.io/api/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
StormAxis MCP Server
Give your AI agent real-time US storm intelligence. StormAxis connects Claude, GPT, and any MCP-compatible agent to live NOAA storm data, scored contractor opportunities, property targeting lists, and canvass route optimization — purpose-built for roofing and restoration contractors.
---
What it does
StormAxis watches every storm in the United States in real time. When a qualifying hail or wind event hits, it automatically scores it (0–100) based on severity, local property values, roof age, and historical claim rates — then surfaces the best opportunities to your agent.
Your AI agent can:
- Ask "What are the best storm opportunities in Texas right now?" and get a ranked list with estimated revenue
- Pull a property target list for any ZIP code hit by a scored storm
- Get H3-optimized canvass clusters so field crews know exactly where to knock doors first
- Check insurance claim propensity by state before committing resources to a new market
- Subscribe to webhooks that fire the moment a qualifying storm lands in your territory
---
Quickstart
1. Get a Partner API key
Sign up at stormaxis.io/partner. MCP access requires Growth tier ($199/mo) or above.
2. Add to Claude Code
claude mcp add stormaxis \
--transport sse \
--url https://stormaxis.io/api/mcp/sse \
--header "X-API-Key: YOUR_API_KEY"
3. Make your first call
Ask Claude: "Check the StormAxis pipeline status."
You should see pipeline_active: true and a latest_event_time within the last 48 hours. You're live.
---
Alternative Setup Methods
Claude Desktop (via mcp-remote)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"stormaxis": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://stormaxis.io/api/mcp/sse"],
"env": {
"MCP_REMOTE_HEADER_X_API_KEY": "YOUR_API_KEY"
}
}
}
}
Standalone npm server (stdio)
npm install -g stormaxis-mcp
Add to claude_desktop_config.json:
{
"mcpServers": {
"stormaxis": {
"command": "stormaxis-mcp",
"env": {
"STORMAXIS_API_KEY": "YOUR_API_KEY"
}
}
}
}
Local development
git clone https://github.com/stormaxis/stormaxis-mcp
cd stormaxis-mcp
cp .env.example .env # add your API key
npm install
npm run build
npm start
---
Tool Reference
Full mapping of MCP tools to their underlying Partner API endpoints.
| MCP Tool | REST Endpoint | Tier | Key Parameters | Description |
|---|---|---|---|---|
| get_storm_overview | GET /api/v1/partner/storm/overview | Growth | — | US storm snapshot — counts by type, top states, SPC outlook |
| get_top_opportunities | GET /api/v1/partner/opportunities/top | Growth | state? min_score? limit? | Last 30 days of storms ranked by opportunity score (0–100) |
| get_storm_score | GET /api/v1/partner/storm/{id}/score | Growth | storm_id | Full composite score breakdown: storm relevance, property economics, replacement probability |
| search_properties | GET /api/v1/partner/properties/{zip} | Professional | zip_code owner_type? min_roof_age? min_sqft? limit? | Owner + property records for door-knock targeting |
| get_canvass_clusters | GET /api/v1/partner/clusters/{storm_id} | Professional | storm_id min_score? limit? | H3 hexagonal canvass zones ranked by doors/hour × owner-occupancy |
| get_insurance_propensity | GET /api/v1/partner/analytics/insurance-propensity | Growth | state? | Claim culture score + avg payout per state |
| get_fema_claims | GET /api/v1/partner/fema/claims | Professional | state year_start? year_end? | Historical NFIP flood claims aggregated by ZIP |
| get_pipeline_status | GET /api/v1/partner/pipeline/status | Growth | — | Data freshness and ingestion health check |
Score Components (get_storm_score)
| Component | What it measures |
|---|---|
| storm_relevance_score | Recency, magnitude, NWS confirmation |
| property_economics_score | Avg property value, roof age, density |
| replacement_probability | ML prediction of claim conversion likelihood |
---
Prompts
The server ships two pre-built prompt templates that chain multiple tools into a single natural-language request:
| Prompt | Arguments | Description |
|---|---|---|
| storm_assessment | state (default: TX) | Full briefing: overview → top opportunities → score breakdown → property targeting |
| property_search | zip_code (default: 76109) | Find older-roof properties in a ZIP with active storm context |
---
Example Agent Workflows
Daily Sales Briefing
1. get_storm_overview → What's active nationally?
2. get_top_opportunities → Which markets rank highest today?
3. get_insurance_propensity → Which states convert claims best?
4. get_storm_score(top_id) → Deep-dive on #1 opportunity
Field Operations Planning
1. get_top_opportunities(state="TX") → Identify top TX storm
2. get_canvass_clusters(storm_id) → Get optimized zones
3. search_properties(zip_code) → Pull door-knock list per zone
New Market Assessment
1. get_insurance_propensity(state) → How claim-friendly is this state?
2. get_fema_claims(state) → Historical flood risk by ZIP
3. get_top_opportunities(state, min_score=50) → Any current opportunities?
---
Pricing
| Tier | Price | Daily API Calls | MCP Access | Tools Available | Webhooks |
|---|---|---|---|---|---|
| Sandbox | Free | 100 | No | Dashboard only | No |
| Growth | $199/mo | 5,000 | Yes | get_storm_overview, get_top_opportunities, get_storm_score, get_insurance_propensity, get_pipeline_status | No |
| Professional | $499/mo | 25,000 | Yes | All 8 tools | No |
| Enterprise | $1,499+/mo | 100,000 | Yes | All tools + Bulk Export | Included |
Overage: $0.05–$0.08 per 1,000 calls on Growth and above.
> Webhook Subscriptions (storm.scored, storm.gold, storm.updated, properties.available, pipeline.alert) are available on Enterprise tier and are included in the base price. See /docs/webhooks.md.
---
Error Reference
| Error | Cause |
|---|---|
| Missing X-API-Key header | No API key in request |
| Invalid or inactive API key | Key not found or revoked |
| API key expired | Key has passed expiration date |
| MCP access requires Growth tier or above | Sandbox key — upgrade at stormaxis.io/partner |
| Daily limit of N calls reached | Rate limit hit — resets midnight UTC |
| Storm {id} not found | Invalid or expired storm ID |
| Database unavailable | Transient backend error — retry with exponential backoff |
---
Data Sources
| Source | Data Type | Refresh Frequency |
|---|---|---|
| NOAA/NWS Storm Data | Verified storm events | Continuous |
| SPC Convective Outlooks | Risk forecasts | Every 15 minutes |
| MRMS (Multi-Radar Multi-Sensor) | Hail size validation | Every 6 hours |
| US County Assessor Records | Property data | Monthly |
| FEMA NFIP Claims | Flood insurance history | Annual |
Storm opportunity scores are recomputed every 6 hours as new events are confirmed.
---
Examples
- Roofing Contractor Agent — Identify storm hits in your territory and generate a lead list
- Insurance Risk Assessment Agent — Post-storm property risk assessment using parcel data and claim propensity
- Dispatch Automation Agent — Auto-dispatch crews when a qualifying storm is detected via webhook
---
Docs
- Authentication & API Keys
- Webhook Events
---
Support
- Partner Portal: stormaxis.io/partner
- Documentation: stormaxis.io/partner/docs
- Issues: tyler@stormaxis.io
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



