Infrastructure Location Risk MCP Server
Infrastructure and location risk intelligence for any address or coordinate, delivered via the Model Context Protocol. This MCP server orchestrates **15 data sources in parallel** — FEMA, USGS, NOAA, GDACS, EPA, OpenAQ, UK Police, and more — to produce structured risk scores for underwriters, real estate investors, and site selection teams. Every tool call returns a scored, graded assessment with evidence-backed findings.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| location_risk_assessment | Quick hazard check: FEMA, earthquakes, weather, floods. | $0.10 |
| natural_disaster_exposure | Comprehensive disaster data: FEMA, USGS, NOAA, GDACS, UK floods. | $0.12 |
| environmental_contamination_check | EPA ECHO, air quality, food hygiene contamination analysis. | $0.08 |
| infrastructure_quality_index | POI density, EV charging, food hygiene, property values. | $0.10 |
| climate_trajectory_forecast | Weather patterns, NOAA alerts, historical disasters, daylight. | $0.12 |
| crime_safety_assessment | UK Police crime data analysis. | $0.05 |
| property_intelligence | UK Land Registry transactions and area development. | $0.08 |
| insurance_underwriting_report | All 15 data sources, 5 risk dimensions, composite underwriting grade. | $0.45 |
Example: 100 events = $10.00 · 1,000 events = $100.00
Connect to your AI agent
Add this MCP server to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.
https://ryanclinton--infrastructure-location-risk-mcp.apify.actor/mcp{
"mcpServers": {
"infrastructure-location-risk-mcp": {
"url": "https://ryanclinton--infrastructure-location-risk-mcp.apify.actor/mcp"
}
}
}Documentation
Infrastructure and location risk intelligence for any address or coordinate, delivered via the Model Context Protocol. This MCP server orchestrates 15 data sources in parallel — FEMA, USGS, NOAA, GDACS, EPA, OpenAQ, UK Police, and more — to produce structured risk scores for underwriters, real estate investors, and site selection teams. Every tool call returns a scored, graded assessment with evidence-backed findings.
Connect once via MCP and your AI assistant can answer questions like "Is this warehouse site in a flood and seismic zone?" or "Generate a full underwriting report for 1300 First Street, New Orleans" without touching a single API or dataset directly.
What data can you access?
| Data Point | Source | Example |
|---|---|---|
| 📋 Federal disaster declarations and history | FEMA Disaster Declarations | 34 declarations — Hurricane, Flood, Tornado |
| 🌍 Seismic events, magnitude, depth | USGS Earthquake Search | 12 events M4.0+ within 150 km |
| ⛈️ Active severe weather alerts | NOAA Weather Alerts | 3 extreme alerts — Tornado Warning |
| 🌐 Global disaster events and impact estimates | GDACS Disaster Alerts | Cyclone, severity level Orange |
| 🌊 UK flood risk warnings by area | UK Flood Warnings | 7 active flood alerts — Thames Valley |
| 🌡️ Multi-day weather forecast with extremes | Weather Forecast | 42°C high — heat stress forecast |
| 💨 Air quality index and pollutant readings | OpenAQ Air Quality | PM2.5: 87 µg/m³ — unhealthy |
| 🏭 EPA enforcement violations and Superfund proximity | EPA ECHO | 18 violation records within 5 km |
| 🚔 Crime incidents by category and rate | UK Police Crime Data | 143 incidents — 38% violent |
| 📍 Address geocoding to coordinates | Nominatim Geocoder | 51.5074° N, 0.1278° W |
| 🏥 Nearby facilities — hospitals, schools, services | OSM Points of Interest | 67 POIs — well-developed area |
| ⚡ EV charging station density | Open Charge Map | 24 stations — modern infrastructure |
| 🏠 Property transaction prices and history | UK Land Registry | Avg £485K — 22 transactions |
| 🍽️ Food hygiene ratings for local establishments | UK Food Hygiene | 82% rated 4+ — area well-maintained |
| ☀️ Day length and seasonal daylight data | Sunrise/Sunset Calculator | 7.3h day — extreme latitude |
Why use Infrastructure & Location Risk MCP Server?
Manual location risk assessment for a single property involves pulling FEMA records, ordering an environmental Phase I report, consulting USGS seismic maps, checking flood zone certificates, and commissioning crime statistics — a process that can take days and cost thousands of dollars per site. Even internal risk teams with GIS access spend hours per location assembling data from a dozen disconnected government databases.
This MCP automates the entire data assembly and scoring pipeline. Connect it to Claude, GPT-4o, or any MCP-compatible AI client and your team gets structured, scored, graded risk assessments in under two minutes per location.
- Scheduling — run recurring monitoring for portfolio properties on daily, weekly, or monthly intervals to track how risk profiles change over time
- API access — trigger assessments from Python, JavaScript, or any HTTP client; integrate directly into underwriting platforms and deal flow tools
- Parallel data fetching — all 15 sources are queried simultaneously, not sequentially, cutting query time dramatically versus manual workflows
- Monitoring — receive Slack or email alerts when assessments flag extreme risk or when a run fails unexpectedly
- Integrations — push results to Zapier, Make, Google Sheets, HubSpot, or GIS platforms via webhooks or the Apify API
Features
- 8 purpose-built MCP tools covering every layer of physical asset risk — from a 30-second hazard check to a full insurance underwriting report
- 15 data sources queried in parallel using
Promise.alldispatch, reducing round-trip time versus sequential API calls - Multi-Hazard Exposure Score (0-100) combining FEMA declaration frequency, USGS M4.0+ earthquake count, NOAA severe/extreme alert severity, GDACS global disaster proximity, and UK flood warning density
- Environmental Contamination Radius score (0-100) derived from EPA ECHO violation record density, OpenAQ PM2.5/AQI averages against WHO thresholds, and UK Food Hygiene low-rating concentration
- Infrastructure Quality Index (0-100) scored from OSM point-of-interest density (50+ POIs = well-developed), EV charging station count as a modern-infrastructure proxy, food hygiene high-rating ratio, and UK Land Registry average property value
- Climate Trajectory score (0-100) built from forecast extreme temperatures (>40°C / <-20°C), storm and blizzard keyword detection in weather descriptions, high-wind forecasts above 50 km/h, NOAA historical alert frequency, and sunrise/sunset day-length analysis for extreme-latitude detection
- Crime Safety score (0-100) using UK Police crime incident counts with a violent crime proportion multiplier — incidents tagged with "violence", "robbery", or "weapon" categories trigger elevated scoring
- Composite Insurance Underwriting Report using a weighted model: Hazard (30%) + Climate (25%) + Contamination (20%) + Crime (15%) + Infrastructure inverted (10%)
- Four-tier risk grade output — LOW RISK / MODERATE RISK / HIGH RISK / UNINSURABLE with a plain-English recommendation for each grade
- Auto-geocoding — supply a place name; the server resolves coordinates via Nominatim before dispatching spatial queries to earthquake, crime, flood, and POI sources
- Spending limit enforcement — every tool call checks
Actor.charge()and halts with a clear error if the run budget is reached, preventing cost overruns - Stateless MCP mode — runs on Apify Standby; each POST to
/mcpcreates an isolated server instance, safe for concurrent multi-user access
Use cases for location risk assessment
P&C insurance underwriting
Property and casualty underwriters spend 20-40 minutes per location gathering hazard data before they can price a risk. This MCP reduces that to a single tool call: insurance_underwriting_report returns a composite risk grade, all five dimensional scores, and a plain-English recommendation (Decline / Elevated Premium / Standard / Preferred). Teams processing hundreds of submissions weekly can embed this into their intake workflows via the Apify API.
Real estate investment due diligence
Investors evaluating acquisition targets need to cross-reference flood zones, seismic exposure, environmental liens, crime rates, and property market context before committing capital. The property_intelligence and natural_disaster_exposure tools combine UK Land Registry transaction history with hazard scoring, giving deal teams a rapid risk profile that would otherwise require a Phase I environmental report and a manual FEMA lookup.
Data center and critical facility site selection
Infrastructure teams selecting data center, warehouse, or manufacturing sites require low earthquake and flood exposure, clean environmental records, and strong utility infrastructure. The infrastructure_quality_index tool quantifies EV charging density and OSM POI coverage as modern-infrastructure proxies, while natural_disaster_exposure compares seismic and flood risk across candidate locations.
Municipal and urban planning
City planners and resilience officers assessing neighborhoods for capital improvement programs need multi-hazard exposure data, environmental contamination proximity, and infrastructure quality indices. This MCP produces all five dimensions for any location, enabling data-driven prioritization of flood defenses, environmental remediation, or infrastructure investment.
Climate risk portfolio assessment
Asset managers and ESG teams tracking climate-adjusted portfolio risk can schedule weekly climate_trajectory_forecast calls across their property portfolio to monitor whether weather extremes, NOAA alert frequency, or flood risk is trending upward. Historical FEMA disaster counts serve as the primary trend signal.
Property buyer due diligence
Individual buyers and their advisors can run a quick location_risk_assessment before making an offer — checking FEMA disaster history, active flood alerts, and seismic exposure for a specific postcode or address in under two minutes, for $0.045.
How to use Infrastructure & Location Risk MCP Server
- Connect the MCP server — Add the server URL to your MCP client (Claude Desktop, Cursor, Windsurf, or any MCP-compatible tool). The endpoint is
https://infrastructure-location-risk-mcp.apify.actor/mcp. Use your Apify API token as the Bearer token. - Ask a location question — Type a natural-language question: "Run a full risk assessment for the Port of Houston, TX" or "What is the seismic and flood exposure for 221B Baker Street, London?"
- The server geocodes and fetches data — If you supply a place name, Nominatim resolves coordinates automatically. Up to 15 data sources are queried in parallel. A typical full report takes 60-90 seconds.
- Review the structured output — You receive a scored, graded JSON response with dimensional risk scores (0-100), risk level labels, evidence findings, and a recommendation. For full underwriting reports, all 15 data source counts are included so you know exactly what evidence informed the grade.
MCP tools
| Tool | Price | What it does |
|---|---|---|
location_risk_assessment | $0.045 | Quick hazard check: FEMA disasters, USGS earthquakes, NOAA alerts, UK floods. Returns Hazard Exposure Score (0-100). |
natural_disaster_exposure | $0.045 | Full natural disaster profile: FEMA (30 records), USGS 200 km radius, NOAA severe/extreme filter, GDACS global events, UK flood warnings. |
environmental_contamination_check | $0.045 | EPA ECHO violation density, OpenAQ air quality readings, UK Food Hygiene low-rating concentration. Returns Contamination Score (0-100). |
infrastructure_quality_index | $0.045 | OSM POI density, EV charging count, food hygiene ratios, UK Land Registry property values, geocode resolution. Returns Quality Score (0-100). |
climate_trajectory_forecast | $0.045 | Extreme temperature and storm forecast analysis, NOAA alert frequency, FEMA historical trend, UK flood risk, day-length latitude scoring. |
crime_safety_assessment | $0.045 | UK Police crime incident count with violent crime proportion analysis and top-10 category breakdown. |
property_intelligence | $0.045 | UK Land Registry transactions, average price calculation, property type breakdown, nearby POI count, geocode data. |
insurance_underwriting_report | $0.045 | Full composite report across all 5 dimensions and 15 data sources. Weighted risk score, letter grade, and plain-English underwriting recommendation. |
Tool input parameters
All tools accept these parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
location | string | Yes | Place name, address, city, or postcode. e.g., "Houston, TX", "SW1A 1AA" |
latitude | number | No | Decimal latitude. If omitted, resolved from location via Nominatim. |
longitude | number | No | Decimal longitude. If omitted, resolved from location via Nominatim. |
Note: property_intelligence accepts only location (string); it handles geocoding internally.
Connecting this MCP server
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"infrastructure-location-risk": {
"url": "https://infrastructure-location-risk-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor / Windsurf / Cline
Add a new MCP server entry pointing to:
https://infrastructure-location-risk-mcp.apify.actor/mcp
Include Authorization: Bearer YOUR_APIFY_TOKEN in the request headers.
Python (direct HTTP)
import httpx, json
APIFY_TOKEN = "YOUR_APIFY_TOKEN"
MCP_URL = "https://infrastructure-location-risk-mcp.apify.actor/mcp"
payload = {
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "insurance_underwriting_report",
"arguments": {
"location": "Houston, TX"
}
},
"id": 1
}
response = httpx.post(
MCP_URL,
json=payload,
headers={"Authorization": f"Bearer {APIFY_TOKEN}"},
timeout=120.0
)
result = response.json()
report = json.loads(result["result"]["content"][0]["text"])
print(f"Location: {report['location']}")
print(f"Risk grade: {report['grade']}")
print(f"Overall score: {report['overallRiskScore']}/100")
print(f"Hazard exposure: {report['dimensions']['hazardExposure']['score']}/100 — {report['dimensions']['hazardExposure']['riskLevel']}")
print(f"Recommendation: {report['recommendation']}")
JavaScript / Node.js
const APIFY_TOKEN = "YOUR_APIFY_TOKEN";
const MCP_URL = "https://infrastructure-location-risk-mcp.apify.actor/mcp";
const response = await fetch(MCP_URL, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${APIFY_TOKEN}`,
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "insurance_underwriting_report",
arguments: { location: "New Orleans, LA" }
},
id: 1
})
});
const data = await response.json();
const report = JSON.parse(data.result.content[0].text);
console.log(`${report.location}: ${report.grade} (score: ${report.overallRiskScore}/100)`);
console.log(`Hazard: ${report.dimensions.hazardExposure.score} | Climate: ${report.dimensions.climateTrajectory.score} | Contamination: ${report.dimensions.contamination.score}`);
console.log(`Recommendation: ${report.recommendation}`);
cURL
# Run a full insurance underwriting report
curl -X POST "https://infrastructure-location-risk-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "insurance_underwriting_report",
"arguments": { "location": "New Orleans, LA" }
},
"id": 1
}'
# Quick location risk check
curl -X POST "https://infrastructure-location-risk-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "location_risk_assessment",
"arguments": { "location": "San Francisco, CA" }
},
"id": 2
}'
Output example
Example response from insurance_underwriting_report for a high-risk location:
{
"location": "New Orleans, LA",
"coordinates": { "lat": 29.9511, "lng": -90.0715 },
"overallRiskScore": 71,
"grade": "UNINSURABLE / EXTREME RISK",
"dimensions": {
"hazardExposure": {
"score": 85,
"riskLevel": "EXTREME RISK",
"findings": [
"34 FEMA disaster declarations — extreme historical disaster zone",
"3 significant earthquakes (M4.0+)",
"5 severe/extreme NOAA alerts — active severe weather zone",
"Multi-hazard zone: FEMA disasters, seismic, severe weather, flooding"
],
"hazardTypes": ["FEMA disasters", "seismic", "severe weather", "flooding"]
},
"contamination": {
"score": 43,
"riskLevel": "MODERATE CONTAMINATION RISK",
"findings": [
"18 EPA enforcement records — moderate contamination risk",
"Air quality index 72 — moderate air quality",
"3 food establishments with low hygiene ratings"
]
},
"infrastructureQuality": {
"score": 62,
"label": "GOOD",
"findings": [
"74 points of interest — well-developed area",
"18 EV charging stations — good infrastructure",
"78% high-rated food establishments — well-maintained area",
"Location successfully geocoded — well-mapped area"
]
},
"climateTrajectory": {
"score": 68,
"label": "HIGH CLIMATE RISK",
"findings": [
"2 extreme temperature forecast(s) — climate stress",
"1 storm/severe weather forecast(s)",
"34 historical FEMA disasters — recurring climate pattern",
"7 active NOAA alerts — elevated climate risk period"
]
},
"crimeSafety": {
"score": 37,
"label": "MODERATE CRIME RISK",
"findings": [
"73 crime incidents — moderate crime",
"11 violent crime incident(s)"
]
}
},
"recommendation": "Location presents extreme risk. Multiple hazard types, environmental contamination, or severe climate exposure. Decline coverage or apply maximum surcharges.",
"dataSources": {
"femaDisasters": 34,
"earthquakes": 8,
"noaaAlerts": 7,
"gdacsDisasters": 2,
"ukFloods": 0,
"weatherForecasts": 7,
"airQualityReadings": 12,
"epaRecords": 18,
"crimeIncidents": 73,
"pointsOfInterest": 74,
"evChargingStations": 18,
"landRegistryRecords": 0,
"foodHygieneRatings": 0
}
}
Output fields
| Field | Type | Description |
|---|---|---|
location | string | Input location as provided |
coordinates.lat | number | Resolved decimal latitude |
coordinates.lng | number | Resolved decimal longitude |
overallRiskScore | number | Composite risk score 0-100 (higher = more risk) |
grade | string | Risk grade: LOW RISK — PREFERRED RATE / MODERATE RISK — STANDARD PREMIUM / HIGH RISK — ELEVATED PREMIUM / UNINSURABLE / EXTREME RISK |
dimensions.hazardExposure.score | number | Multi-hazard exposure score 0-100 |
dimensions.hazardExposure.riskLevel | string | LOW / MODERATE / HIGH / EXTREME RISK |
dimensions.hazardExposure.findings | string[] | Evidence statements from each data source |
dimensions.hazardExposure.hazardTypes | string[] | Active hazard categories detected |
dimensions.contamination.score | number | Environmental contamination score 0-100 |
dimensions.contamination.riskLevel | string | LOW / MODERATE / HIGH CONTAMINATION RISK |
dimensions.contamination.findings | string[] | EPA violation counts, AQI readings, hygiene data |
dimensions.infrastructureQuality.score | number | Infrastructure quality index 0-100 (higher = better) |
dimensions.infrastructureQuality.label | string | POOR / FAIR / GOOD / EXCELLENT |
dimensions.infrastructureQuality.findings | string[] | POI count, EV charging, property values |
dimensions.climateTrajectory.score | number | Climate risk trajectory score 0-100 |
dimensions.climateTrajectory.label | string | LOW / MODERATE / ELEVATED / HIGH CLIMATE RISK |
dimensions.climateTrajectory.findings | string[] | Forecast extremes, NOAA patterns, FEMA trends |
dimensions.crimeSafety.score | number | Crime and safety score 0-100 |
dimensions.crimeSafety.label | string | LOW / MODERATE / HIGH CRIME RISK |
dimensions.crimeSafety.findings | string[] | Incident counts and violent crime proportion |
recommendation | string | Plain-English underwriting recommendation |
dataSources.* | number | Record count from each of the 13 data source categories |
For individual tools (location_risk_assessment, natural_disaster_exposure, etc.), responses return the relevant subset of these fields.
How much does it cost to run location risk assessments?
This MCP uses pay-per-event pricing — you pay $0.045 per tool call. Platform compute costs are included. There is no subscription or monthly minimum.
| Scenario | Tool calls | Cost per call | Total cost |
|---|---|---|---|
| Single quick hazard check | 1 | $0.045 | $0.05 |
| Full underwriting report | 1 | $0.045 | $0.05 |
| Compare 5 candidate sites (quick) | 5 | $0.045 | $0.23 |
| Compare 5 sites (full reports) | 5 | $0.045 | $0.23 |
| Portfolio of 100 properties (full reports) | 100 | $0.045 | $4.50 |
You can set a maximum spending limit per run in your Apify account to control costs. The actor stops and returns a clear error message when your budget is reached.
Compare this to traditional Phase I environmental assessments at $1,500-$3,500 per property, or flood zone determination certificates at $25-$150 each. A 100-property portfolio assessment that would cost $150,000+ through conventional channels costs $4.50 with this MCP.
Apify's free tier includes $5 of monthly platform credits, covering approximately 110 tool calls at no cost.
How Infrastructure & Location Risk MCP Server works
Phase 1: Geocoding and coordinate resolution
If coordinates are not provided, the server calls the Nominatim geocoder with maxResults: 1 to resolve the input location string to a decimal latitude/longitude pair. This coordinate is then used for all subsequent spatial queries — USGS earthquake radius searches (150-200 km), OSM POI proximity lookups, EV charging station radius, UK crime location queries, and sunrise/sunset calculation.
Phase 2: Parallel data fetching
All applicable actor calls are dispatched concurrently using Promise.all. For the full underwriting report, 14 actor calls run simultaneously: FEMA, USGS (150 km radius), NOAA, GDACS, UK Flood, Weather, OpenAQ, EPA ECHO, UK Crime, OSM POI (50 results), Open Charge Map, UK Land Registry, UK Food Hygiene, and Sunrise/Sunset. Each actor is allocated 256 MB memory with a 120-second timeout, after which it returns an empty array rather than blocking the pipeline.
Phase 3: Scoring model computation
Five scoring functions process the collected data arrays against threshold rules:
- Hazard scoring applies tiered point values: 20+ FEMA declarations = 25 pts; 5+ M4.0 earthquakes = 20 pts; 3+ severe NOAA alerts = 15 pts; any GDACS event = 10 pts; 5+ UK floods = 15 pts. Scores are capped at 100.
- Contamination scoring averages OpenAQ
value/aqi/pm25fields across all readings. AQI >150 = 30 pts; EPA records >20 = 35 pts. - Infrastructure quality uses POI count thresholds (50+ = 25 pts) and EV charging density (20+ = 20 pts), then adds a food hygiene high-rating ratio bonus (>80% rated 4+ = 15 pts) and UK Land Registry average price premium (>£500K = 10 pts).
- Climate trajectory detects extreme temperatures (>40°C or <-20°C) in forecast
temperature/temp/maxTempfields, storm keywords indescription/conditions/summary, wind speeds above 50 km/h, and day-length outliers below 8 hours or above 16 hours. - Crime safety counts total incidents and computes violent crime ratio: incidents with "violen", "robbery", or "weapon" in the
category/crimeTypefield that exceed 30% of total incidents trigger a 30-point penalty.
Phase 4: Composite underwriting report
The weighted formula is: (hazard × 0.30) + (climate × 0.25) + (contamination × 0.20) + (crime × 0.15) + ((100 - infrastructure) × 0.10). Infrastructure quality is inverted because higher quality reduces overall risk. The composite total maps to four grades: 0-29 = LOW RISK (preferred rate), 30-49 = MODERATE RISK (standard premium), 50-69 = HIGH RISK (elevated premium), 70-100 = UNINSURABLE (decline or maximum surcharge).
Tips for best results
-
Supply coordinates when you have them. If you already know the latitude and longitude, include them in the tool call. This skips the Nominatim geocoding step and saves approximately 5-10 seconds per request.
-
Use specific location strings. "1600 Pennsylvania Ave NW, Washington DC" geocodes more accurately than "Washington DC". For UK locations, postcodes ("SW1A 1AA") produce the most precise radius searches.
-
Start with
location_risk_assessmentbefore the full report. The quick hazard check costs the same $0.045 and takes 20-30 seconds. If the hazard score is low, you may not need the full underwriting report. -
Understand UK vs. US data coverage. Crime, flood, land registry, and food hygiene tools are UK-specific. For US locations, hazard data (FEMA, USGS, NOAA, EPA) is comprehensive but property and crime dimensions will return limited data. Use the
natural_disaster_exposuretool for US locations rather than the full underwriting report. -
Batch comparisons with the API. When comparing 10+ candidate sites, use the Python or JavaScript client to run assessments in parallel. Loop through your location list and collect all results before analyzing — avoid running them sequentially from a chat interface.
-
Combine with property data actors. The
property_intelligencetool covers UK Land Registry. For US property data, combine this MCP with Company Deep Research or WHOIS Domain Lookup for supplementary due diligence on property owners. -
Schedule weekly climate trajectory checks. For portfolio properties in hurricane corridors, flood plains, or wildfire zones, schedule
climate_trajectory_forecastweekly. NOAA alert frequency and weather extremes shift seasonally — a quarterly review will miss a deteriorating season. -
Set a spending limit for bulk runs. When running assessments programmatically across large portfolios, configure a per-run spending limit in Apify's run settings to prevent unexpected charges if your location list is longer than expected.
Combine with other Apify actors
| Actor | How to combine |
|---|---|
| Location Risk Report | Full narrative PDF-style report for a location — use after this MCP flags high risk for a deeper written analysis |
| Company Deep Research | Look up the operating company at a facility after flagging it for environmental or hazard risk |
| WHOIS Domain Lookup | Research domain registration for businesses operating from a flagged location |
| Website Tech Stack Detector | Profile insurtech or proptech companies to identify potential integration partners in this space |
| B2B Lead Qualifier | Score and qualify commercial property firms or insurers as leads after identifying their risk profiles |
| Trustpilot Review Analyzer | Validate the reputation of real estate agencies or environmental consultancies in a given location |
| Event Lead Extractor | Extract contacts from insurance and real estate conference sponsors who may need location risk tools |
Limitations
- UK crime, flood, land registry, and food hygiene data is UK-only. Crime Safety scores, UK Flood Warnings, UK Land Registry, and UK Food Hygiene results will be empty for US and non-UK locations. The composite underwriting score for US locations is driven primarily by FEMA, USGS, NOAA, EPA, and climate trajectory dimensions.
- FEMA and EPA ECHO data is US-only. For international locations outside the UK and US, meaningful risk data is limited to GDACS (global disasters), OpenAQ (air quality), USGS (earthquakes), and weather forecasts.
- No real-time satellite or imagery analysis. The MCP works entirely from API data sources — it does not perform visual inspection, drone analysis, or satellite change detection.
- Data source freshness varies. FEMA disaster declarations are historical records. NOAA alerts are real-time. UK Land Registry transactions lag 2-3 months. OpenAQ readings are near-real-time but station coverage varies by city.
- Geocoding precision is address-dependent. Rural locations, industrial estates, or newly built areas may resolve to town-center coordinates rather than exact parcel coordinates. Supply explicit latitude/longitude for precision-critical assessments.
- Each tool call has a 120-second per-actor timeout. If a data source is slow or unavailable, that source returns an empty array rather than blocking the overall response. The risk score will reflect the available data only.
- No PDF or report export. Outputs are structured JSON via the MCP protocol. Rendering to PDF or feeding into a downstream document requires a separate integration step.
- Scoring models are deterministic thresholds, not ML models. The scoring engine applies fixed point thresholds derived from the source code (e.g., 20+ FEMA declarations = 25 pts). They are calibrated for comparative ranking, not actuarial pricing.
Integrations
- Apify API — call any tool programmatically; integrate location risk checks into underwriting platforms, deal tracking systems, or GIS pipelines
- Zapier — trigger a location risk check whenever a new property is added to your CRM or spreadsheet
- Make — build multi-step workflows: receive a property address by email, run a risk assessment, and route the result to a Slack channel based on grade
- Google Sheets — feed assessment results into a property portfolio tracker; one row per location, one column per dimension score
- Webhooks — receive a webhook payload when a scheduled portfolio assessment completes for integration with dashboard or BI tools
- LangChain / LlamaIndex — mount this MCP server as a tool in agentic pipelines where the AI decides when to trigger location risk checks during deal analysis or report generation
Troubleshooting
-
Empty scores for a US location — The crime, flood, land registry, and food hygiene dimensions are UK-specific and will return empty arrays for US addresses. This is expected behavior. Use
natural_disaster_exposurefor US-focused hazard analysis, which provides full FEMA, USGS, NOAA, and GDACS coverage. -
Geocoding fails or returns unexpected coordinates — Nominatim resolves location strings to the best-matching OpenStreetMap entry. Ambiguous inputs like "Springfield" may resolve to the wrong city. Supply explicit
latitudeandlongitudeparameters for any location where precise coordinates matter. -
Tool call times out or returns partial data — Individual upstream actors have a 120-second timeout. If a government data source is slow or returning HTTP errors at query time, that source contributes empty arrays to the score. The response will note the affected source count in the
dataSourcesfield. Retry after a few minutes if critical data sources show zero records unexpectedly. -
Spending limit reached error — You have hit the per-run budget cap set in your Apify account. Increase the maximum spend in the run settings, or purchase additional Apify credits under Account > Billing.
-
Score seems too low for a known high-risk location — For non-UK/non-US locations, several scoring dimensions have no data and default to zero, which will lower the composite score. This is a data coverage limitation, not a scoring error. Apply judgment when interpreting scores for locations outside the US and UK.
Responsible use
- This MCP server only accesses publicly available government databases and open data registries.
- All data sources — FEMA, USGS, NOAA, EPA, UK Police, UK Environment Agency, UK Land Registry, Food Standards Agency — are open government data accessible to the public.
- Risk scores are analytical tools to assist decision-making and are not substitutes for professional insurance assessments, Phase I environmental reports, or licensed engineering surveys.
- Do not use location risk data to discriminate against individuals or communities in ways that violate fair lending, fair housing, or anti-discrimination laws.
- For guidance on data use legality, see Apify's guide.
FAQ
How many location risk assessments can I run per month? There is no cap on the number of tool calls. Each call costs $0.045. The only limit is your Apify account balance or any per-run spending limit you configure. Apify's free tier provides $5 of credits per month, covering approximately 110 tool calls.
Does the location risk MCP cover international locations outside the US and UK? Global coverage is provided by GDACS (worldwide disaster alerts), USGS earthquakes (global seismic data), OpenAQ (global air quality stations), Open Charge Map (global EV charging), and weather forecasts. US-specific coverage includes FEMA, NOAA, and EPA. UK-specific coverage includes crime, flood warnings, land registry, and food hygiene. For locations in other countries, hazard and climate scores will be meaningful but crime and property dimensions will be empty.
How accurate is the Multi-Hazard Exposure Score? The score is a comparative ranking tool, not a certified actuarial model. It applies tiered thresholds to government data counts and severity classifications. A location scoring 80+ has significantly more documented hazard activity than one scoring 20. For regulatory or compliance use cases, supplement with certified flood zone determinations, seismic hazard maps, and professional Phase I environmental reports.
How is this different from a commercial risk data provider like Verisk or CoreLogic? Commercial providers offer proprietary models, historical loss data, and regulatory-grade peril scores. This MCP provides open-government data aggregation and comparative scoring at a fraction of the cost — $0.045 per query versus hundreds of dollars per property for commercial platforms. It is best suited for initial screening, due diligence triage, and AI-assisted research rather than binding underwriting decisions.
Can I compare multiple locations to find the lowest-risk site?
Yes. Run location_risk_assessment or insurance_underwriting_report for each candidate location and compare overallRiskScore values. Lower scores indicate lower composite risk. The dimensional breakdown lets you compare locations on individual risk factors — a site might have low hazard exposure but high contamination risk.
How long does a full insurance underwriting report take to run?
A full underwriting report queries 14 data sources in parallel. Typical run time is 60-120 seconds depending on data source response times. Quick hazard checks (location_risk_assessment) take 20-40 seconds. Set your HTTP client timeout to at least 150 seconds.
Is the location risk data legal to use for insurance underwriting? All data sources are public government databases. Using public data for analytical purposes is generally lawful. However, using location data as a proxy for protected characteristics in insurance pricing may be subject to fair insurance regulations in your jurisdiction. Consult legal counsel before using location scores as a direct pricing input.
Can I schedule this MCP to monitor a property portfolio automatically? Yes. Use the Apify Scheduler to run assessments on a daily, weekly, or monthly schedule. You can also set up webhooks to receive the results in your system automatically when each scheduled run completes.
What happens if one of the 15 data sources is unavailable?
Each upstream actor has a 120-second timeout with graceful error handling. If a source fails, it contributes an empty array to the scoring pipeline, and the affected dimension is scored from the available data only. The dataSources field in the response shows the record count from each source so you can identify which data was missing.
How does the composite risk grade map to insurance underwriting decisions? The four grades translate to standard underwriting actions: LOW RISK (0-29) = preferred rates, standard terms. MODERATE RISK (30-49) = standard underwriting, no adjustments required. HIGH RISK (50-69) = apply risk-adjusted premiums, require additional inspections. UNINSURABLE / EXTREME RISK (70-100) = decline coverage or apply maximum surcharges and exclusions.
Can I use this MCP with Claude, GPT-4o, or other AI assistants? Yes. Any MCP-compatible AI client can connect to this server. Tested with Claude Desktop, Cursor, Windsurf, and Cline. GPT-4o with tool use can call the MCP endpoint directly via HTTP. The server uses the standard MCP Streamable HTTP transport with stateless session handling.
Does the MCP store my location queries? The server is stateless — each tool call creates an isolated MCP server instance that is destroyed after the response. Apify stores run logs and dataset outputs per the standard Apify data retention policy, which you can configure under account settings.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom scoring models, enterprise integrations, or bulk data contracts, reach out through the Apify platform.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Infrastructure Location Risk MCP Server?
Start for free on Apify. No credit card required.
Open on Apify Store