Energy Transition Resilience MCP
Energy transition resilience analysis via the Model Context Protocol, combining 8 live data sources into a unified multi-factor assessment. This MCP server is built for energy analysts, infrastructure investors, policymakers, and AI agents that need structured, quantitative answers about how ready a region is to weather the transition away from fossil fuels. It produces scored assessments across EV readiness, fossil fuel dependency, air quality, climate vulnerability, and economic price shock ri
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 |
|---|---|---|
| tool-call | Per MCP tool invocation | $0.10 |
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--energy-transition-resilience-mcp.apify.actor/mcp{
"mcpServers": {
"energy-transition-resilience-mcp": {
"url": "https://ryanclinton--energy-transition-resilience-mcp.apify.actor/mcp"
}
}
}Documentation
Energy transition resilience analysis via the Model Context Protocol, combining 8 live data sources into a unified multi-factor assessment. This MCP server is built for energy analysts, infrastructure investors, policymakers, and AI agents that need structured, quantitative answers about how ready a region is to weather the transition away from fossil fuels. It produces scored assessments across EV readiness, fossil fuel dependency, air quality, climate vulnerability, and economic price shock risk — all from a single tool call.
Connect it to Claude, Cursor, Windsurf, or any MCP-compatible client and ask questions like "How resilient is Germany's energy system?" or "What is the price shock risk for USD-denominated energy imports?" and receive structured JSON answers backed by live government and open-data sources.
⬇️ What data can you access?
| Data Point | 📡 Source | Example |
|---|---|---|
| 📍 EV charging stations with GPS coordinates | Open Charge Map | 47,300 UK stations, connector types, kW ratings |
| 🔌 Charger types and power levels (kW) | Open Charge Map | CHAdeMO 50kW, CCS2 150kW, Type 2 22kW |
| 🛢️ Oil and gas production licenses | NSTA Oil & Gas | UK North Sea block P2344, active, Shell operator |
| 💨 Air quality measurements (PM2.5, PM10, O3, NO2, SO2, CO) | OpenAQ | London Marylebone Rd PM2.5: 18.4 µg/m³ |
| 🌩️ Severe weather alerts and events | NOAA Weather Alerts | Extreme storm warning, 3 counties affected |
| 📈 US energy price economic indicators | FRED Economic Data | WTI crude spot, Henry Hub gas price series |
| 🌍 Energy use per capita and renewable share | World Bank Data | EG.USE.PCAP.KG.OE for 190 countries |
| 💱 EUR/USD and cross-currency exchange rates | ECB Exchange Rates | EUR/USD 1.0842, ECB reference date |
| 📊 EU energy balance and consumption patterns | Eurostat | nrg_bal_c dataset: GWh by fuel and country |
Why use Energy Transition Resilience MCP?
Manually assessing a region's energy transition readiness requires pulling data from eight different government portals, harmonizing units, building scoring models, and refreshing everything when indicators change. That process takes days for an analyst and weeks to automate from scratch.
This MCP replaces that pipeline with a single tool call. You get scored, structured results — ready for AI agent consumption, dashboard injection, or direct analysis — in seconds.
Beyond raw convenience, the server runs on the Apify platform, which means:
- Scheduling — run weekly resilience scans for portfolio regions and store results automatically
- API access — trigger assessments from Python, TypeScript, or any HTTP client without managing infrastructure
- Pay-per-call pricing — no subscription, no idle costs; pay only for tool calls made
- Monitoring — get alerts when runs fail or score thresholds are breached
- Integrations — push results directly to Google Sheets, Slack, Zapier, or Make workflows
❓ MCP tools
| Tool | Price | Description |
|---|---|---|
map_energy_transition_network | $0.045 | Build a graph of fossil, renewable, and economic nodes with haversine-proximity edges across all 8 sources |
assess_ev_infrastructure_readiness | $0.045 | Score EV charging density, fast-charger ratio, and average kW output for a region (0-100) |
compute_fossil_fuel_dependency | $0.045 | Compute dependency index from active oil/gas license counts, types, and active ratios |
analyze_air_quality_correlation | $0.045 | Correlate PM2.5, PM10, O3, NO2, SO2, and CO measurements with fossil energy exposure |
detect_energy_price_shock_risk | $0.045 | Detect price shock vulnerability using coefficient-of-variation analysis across FRED, World Bank, and ECB data |
assess_climate_vulnerability | $0.045 | Score climate vulnerability from NOAA weather severity distribution and air quality degradation |
compute_transition_readiness_score | $0.045 | Weighted 5-dimension composite score: EV (25%) + fossil (20%) + air (15%) + climate (20%) + economic (20%) |
generate_energy_resilience_report | $0.045 | Full report combining all dimensions into an executive summary with transition grade A-F |
Features
- 8-source parallel data fetching — all Apify actor calls run concurrently via
Promise.all, minimizing latency - Haversine proximity edge-building — EV stations and air quality monitors within 100 km are linked in the network graph, with edge weights decaying by distance
- Coefficient of variation volatility scoring — FRED, World Bank, and ECB data series are analyzed for mean/variance ratios, with currency volatility weighted 2x in the price shock model
- 5-dimension weighted composite scoring — EV readiness (25%), fossil dependency (20%), air quality (15%), climate resilience (20%), economic stability (20%)
- Transition grade A-F — overall score maps to a letter grade: A (80+), B (65-79), C (50-64), D (35-49), F (<35)
- Risk-level classification — four tiers (low, moderate, high, critical) on all scored dimensions
- Fossil fuel dependency index — combines license volume, active ratio, and type diversity into a 0-100 index; higher = more dependent
- EV readiness sub-scoring — density per 100,000 population (max 30 pts), fast-charger ratio (30 pts), average kW (20 pts), total station count (20 pts)
- Air quality correlation score — PM2.5 normalized to 35 µg/m³ (60% weight) + PM10 normalized to 50 µg/m³ (40% weight)
- Climate vulnerability score — Extreme alerts (15 pts each), Severe alerts (8 pts each), Moderate (3 pts each), air quality degradation bonus (up to 20 pts)
- Eurostat integration — EU energy balance dataset (nrg_bal_c) included in network mapping and full resilience reports
- SSE transport — runs as a persistent Server-Sent Events MCP server on Apify's Standby infrastructure; no cold-start latency after initialization
- Structured JSON output — every tool returns typed results matching defined TypeScript interfaces, safe for programmatic consumption
Use cases for energy transition resilience analysis
Municipal energy planning and infrastructure investment
City planners and regional governments need to prioritize infrastructure spending — whether that means EV charging expansion, grid modernization, or fossil fuel asset retirement. The compute_transition_readiness_score tool produces a single scored assessment across all five dimensions with actionable recommendations ("Expand fast chargers >50 kW", "Diversify energy sources to reduce price shock vulnerability"), giving budget committees a defensible, data-backed starting point.
Energy portfolio risk assessment
Asset managers and infrastructure funds holding exposure to fossil fuel producers, utilities, or clean-energy developers need quantified transition risk per region. The compute_fossil_fuel_dependency and detect_energy_price_shock_risk tools provide the dependency index and volatility scores needed to weight holdings by transition-risk tier. Running these tools weekly via scheduled Apify runs keeps portfolio risk scores current without analyst intervention.
Climate adaptation and resilience strategy
Insurers, development banks, and NGOs planning climate adaptation investments need to know which regions face the greatest combination of climate hazard and energy infrastructure vulnerability. The assess_climate_vulnerability tool aggregates NOAA weather severity data and OpenAQ air quality degradation into a single vulnerability score, with the top 5 threat types ranked by frequency.
EV network expansion planning
Charging network operators evaluating new market entry need station density, coverage classification (insufficient / developing / adequate / excellent), and fast-charger penetration by region before committing capital. The assess_ev_infrastructure_readiness tool pulls live Open Charge Map data and scores density per 100,000 population, fast-charger ratio, and average kW output in a single call.
Air quality policy and public health analysis
Environmental regulators and public health agencies correlating energy mix with pollution outcomes need normalized pollutant levels tied to fossil fuel exposure proxies. The analyze_air_quality_correlation tool computes a correlation score linking PM2.5 and PM10 averages to the region's energy profile, supporting the regulatory case for accelerated transition.
AI agent energy research workflows
LLM-powered research agents in Claude, Cursor, or custom pipelines can call any of the 8 tools directly via MCP to answer natural language questions about energy resilience. The generate_energy_resilience_report tool returns a structured executive summary plus all sub-dimension scores in a single response — ideal for feeding into summarization or report-generation pipelines.
How to connect this MCP server
Step 1: Get your Apify API token
Sign up at apify.com (free tier includes $5/month in credits). Copy your API token from Account Settings.
Step 2: Connect your MCP client
Claude Desktop — add to claude_desktop_config.json:
{
"mcpServers": {
"energy-transition-resilience": {
"url": "https://energy-transition-resilience-mcp.apify.actor/sse",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor / Windsurf / Cline — use the same SSE URL in your MCP settings panel.
Step 3: Call a tool
Ask your AI client: "Use the energy transition MCP to compute transition readiness for Germany." The client will call compute_transition_readiness_score with region: "DE" and return a scored, structured result.
Step 4: Download results
Full JSON responses are returned inline via MCP. For batch processing or scheduled runs, results are also stored in the Apify dataset for the run.
Input parameters
The MCP server requires only one configuration parameter:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
port | integer | No | 3039 | Port number for the MCP SSE server (1-65535). Only relevant when self-hosting. |
All analytical parameters (region, data sources, max results) are passed as tool arguments at call time — not as actor input.
Tool arguments reference
| Tool | Argument | Type | Default | Description |
|---|---|---|---|---|
map_energy_transition_network | region | string | "UK" | Region or country to analyze |
sources | array | all 8 | Subset of: ev_infra, fossil, air_quality, weather, us_econ, global_econ, currency, eu_stats | |
maxResults | number | 50 | Maximum results per source | |
assess_ev_infrastructure_readiness | region | string | "UK" | Country code for Open Charge Map |
maxResults | number | 100 | Maximum EV stations to fetch | |
compute_fossil_fuel_dependency | region | string | "UK" | Region to analyze |
maxResults | number | 100 | Maximum licenses to analyze | |
analyze_air_quality_correlation | region | string | "GB" | ISO country code for OpenAQ |
parameter | string | "pm25" | Pollutant: pm25, pm10, o3, no2, so2, co | |
maxResults | number | 100 | Maximum measurements | |
detect_energy_price_shock_risk | searchText | string | "energy price oil gas" | FRED search terms |
worldBankIndicator | string | "EG.USE.PCAP.KG.OE" | World Bank indicator code | |
currency | string | "USD" | Currency for ECB rate stability check | |
maxResults | number | 50 | Maximum results per source | |
assess_climate_vulnerability | region | string | "US" | Region or country |
maxAlerts | number | 50 | Maximum NOAA weather alerts | |
maxAirQuality | number | 50 | Maximum OpenAQ measurements | |
compute_transition_readiness_score | region | string | "UK" | Region or country |
maxResults | number | 50 | Maximum results per data source | |
generate_energy_resilience_report | region | string | "UK" | Region for the full report |
sources | array | all 8 | Data sources to include | |
maxResults | number | 50 | Maximum results per source |
⬆️ Output example
Response from generate_energy_resilience_report with region: "DE":
{
"region": "DE",
"reportDate": "2026-03-21",
"executiveSummary": "Energy Transition Resilience Report for DE. Overall resilience score: 62/100 (moderate risk). EV readiness: 58/100 (adequate). Fossil dependency: 34/100 (moderate). Transition grade: B.",
"evInfrastructure": {
"region": "DE",
"stationCount": 87,
"densityPerCapita": 0.00087,
"readinessScore": 58,
"chargerTypes": {
"CCS (Type 2)": 64,
"CHAdeMO": 23,
"Type 2 (Mennekes)": 102
},
"coverage": "adequate",
"stations": [],
"timestamp": "2026-03-21T09:14:22.000Z"
},
"fossilFuelDependency": {
"region": "DE",
"licenseCount": 31,
"dependencyIndex": 34,
"licenseTypes": {
"Exploration": 12,
"Production": 19
},
"riskLevel": "moderate",
"licenses": [],
"timestamp": "2026-03-21T09:14:22.000Z"
},
"airQualityCorrelation": {
"region": "DE",
"measurementCount": 87,
"averagePM25": 14.2,
"averagePM10": 22.8,
"correlationScore": 42,
"pollutants": {
"pm25": 14.2,
"pm10": 22.8,
"no2": 31.4,
"o3": 67.1
},
"measurements": [],
"timestamp": "2026-03-21T09:14:22.000Z"
},
"climateVulnerability": {
"region": "DE",
"alertCount": 14,
"severityDistribution": {
"Severe": 4,
"Moderate": 9,
"Minor": 1
},
"vulnerabilityScore": 61,
"topThreats": [
"Winter Storm Warning",
"Flood Advisory",
"High Wind Warning",
"Freezing Fog Advisory",
"Dense Fog Advisory"
],
"alerts": [],
"timestamp": "2026-03-21T09:14:22.000Z"
},
"economicIndicators": {
"indicators": [],
"volatilityIndex": 38,
"shockProbability": 0.19,
"riskFactors": [
"FRED indicator: Crude Oil Prices: West Texas Intermediate",
"FRED indicator: Henry Hub Natural Gas Spot Price",
"High coefficient of variation in FRED data: 31.4%"
],
"riskLevel": "moderate",
"timestamp": "2026-03-21T09:14:22.000Z"
},
"transitionReadiness": {
"region": "DE",
"overallScore": 62,
"dimensions": {
"evReadiness": 58,
"fossilDependency": 66,
"airQuality": 58,
"climateResilience": 39,
"economicStability": 62
},
"grade": "B",
"recommendations": [
"Strengthen climate adaptation measures for energy infrastructure"
],
"timestamp": "2026-03-21T09:14:22.000Z"
},
"overallResilienceScore": 62,
"riskLevel": "moderate",
"timestamp": "2026-03-21T09:14:22.000Z"
}
Output fields
Top-level (generate_energy_resilience_report)
| Field | Type | Description |
|---|---|---|
region | string | Region or country code analyzed |
reportDate | string | ISO date the report was generated |
executiveSummary | string | Human-readable summary with key scores and grade |
evInfrastructure | object | EV readiness sub-report (null if no EV data) |
fossilFuelDependency | object | Fossil dependency sub-report (null if no license data) |
airQualityCorrelation | object | Air quality sub-report (null if no measurements) |
climateVulnerability | object | Climate vulnerability sub-report |
economicIndicators | object | Price shock risk sub-report |
transitionReadiness | object | Composite readiness score with dimensions |
overallResilienceScore | number | 0-100 average of available dimension scores |
riskLevel | string | low / moderate / high / critical |
timestamp | string | ISO 8601 timestamp of report generation |
EV infrastructure sub-report
| Field | Type | Description |
|---|---|---|
stationCount | number | Total EV stations fetched |
densityPerCapita | number | Stations per 100,000 population |
readinessScore | number | 0-100 composite readiness score |
chargerTypes | object | Count by connector type name |
coverage | string | insufficient / developing / adequate / excellent |
stations | array | Raw station records (up to 50) |
Fossil fuel dependency sub-report
| Field | Type | Description |
|---|---|---|
licenseCount | number | Total licenses analyzed |
dependencyIndex | number | 0-100 dependency index (higher = more dependent) |
licenseTypes | object | Count by license type (Exploration, Production, etc.) |
riskLevel | string | low / moderate / high / critical |
Air quality correlation sub-report
| Field | Type | Description |
|---|---|---|
measurementCount | number | Total measurements analyzed |
averagePM25 | number | Average PM2.5 in µg/m³ |
averagePM10 | number | Average PM10 in µg/m³ |
correlationScore | number | 0-100 fossil energy correlation score |
pollutants | object | Average value by pollutant parameter |
Climate vulnerability sub-report
| Field | Type | Description |
|---|---|---|
alertCount | number | Total weather alerts analyzed |
severityDistribution | object | Alert count by severity tier |
vulnerabilityScore | number | 0-100 climate vulnerability score |
topThreats | string[] | Top 5 threat types by frequency |
Energy price shock risk sub-report
| Field | Type | Description |
|---|---|---|
volatilityIndex | number | 0-100 price volatility index |
shockProbability | number | 0-1 probability estimate of near-term price shock |
riskFactors | string[] | Identified volatility drivers with values |
riskLevel | string | low / moderate / high / critical |
Transition readiness score
| Field | Type | Description |
|---|---|---|
overallScore | number | 0-100 weighted composite score |
dimensions.evReadiness | number | EV sub-score (25% weight) |
dimensions.fossilDependency | number | Fossil sub-score inverted (20% weight) |
dimensions.airQuality | number | Air quality sub-score inverted (15% weight) |
dimensions.climateResilience | number | Climate sub-score inverted (20% weight) |
dimensions.economicStability | number | Economic sub-score inverted (20% weight) |
grade | string | Letter grade: A / B / C / D / F |
recommendations | string[] | Targeted improvement recommendations |
How the scoring algorithms work
EV infrastructure readiness scoring
The assessEVInfrastructureReadiness function scores charging density and quality on a 100-point scale. Points are awarded in four buckets: station density per 100,000 population (up to 30 points), fast-charger ratio where "fast" means 50 kW or above (30 points), average kW per station normalized to 150 kW max (20 points), and total station count capped at 100 stations for full marks (20 points). The final readiness score maps to four coverage tiers: insufficient (<25), developing (25-49), adequate (50-74), and excellent (75+).
Fossil fuel dependency index
The computeFossilFuelDependency function builds a 0-100 index from three signals: license volume normalized to 50 licenses for full marks (40 points), the ratio of active/extant/current licenses to total licenses (35 points), and license type variety normalized to 5 distinct types (25 points). The active-license check matches status strings containing "active", "extant", or "current" to count operating assets. Higher scores indicate greater dependency and higher transition risk.
Energy price shock risk with coefficient of variation
The detectEnergyPriceShockRisk function computes coefficient of variation (CV = standard deviation / mean) independently for FRED, World Bank, and ECB data series. Currency volatility (ECB) is weighted 2x because exchange rate instability amplifies energy import costs. The three CVs are averaged into avgVolatility, which maps to a volatilityIndex (scaled ×200, capped at 100) and a shockProbability (scaled ×300, capped at 1.0). Risk tiers: low (<25), moderate (25-49), high (50-74), critical (75+).
Climate vulnerability scoring
The assessClimateVulnerability function scores weather alert severity distribution: Extreme alerts contribute 15 points each, Severe 8 points, Moderate 3 points. Air quality degradation adds bonus points: PM2.5 above 25 µg/m³ adds 0.5 per measurement, PM10 above 50 µg/m³ adds 0.3, O3 above 100 µg/m³ adds 0.4 — the total is capped at 20. Alert volume also contributes: total alerts divided by 10, capped at 1, scaled to 15 points. All contributions sum and are capped at 100.
Air quality correlation score
PM2.5 averages are normalized to the 35 µg/m³ warning threshold (60% weight) and PM10 to 50 µg/m³ (40% weight). The combined correlation score reflects how far measured pollution levels exceed safe thresholds. A score of 100 means pollution levels fully explain fossil fuel exposure; 0 means ambient pollution is below warning thresholds.
Transition readiness composite
The weighted composite applies: EV readiness (25%) + inverted fossil dependency (20%) + inverted air quality score (15%) + inverted climate vulnerability (20%) + inverted economic volatility (20%). Inversion ensures that all five dimensions contribute positively when conditions are good: lower fossil dependency, lower pollution, lower climate vulnerability, and lower price volatility all raise the composite score. Letter grades: A (80+), B (65-79), C (50-64), D (35-49), F (<35).
Energy transition network graph
The buildEnergyNetwork function creates typed nodes for each data source (ev_station, oil_license, air_quality, weather_event, economic_indicator, currency, stat_series) and builds three categories of edges:
- EV-to-air-quality edges: haversine distance between station coordinates and monitor coordinates; edges created for pairs within 100 km, weighted by
1 - (distance / 100) - Oil-to-economic edges: all oil license nodes linked to all economic indicator nodes with weight 0.5 (representing economic impact channel)
- Weather-to-EV edges: all weather event nodes linked to the 5 nearest EV station nodes, weighted 1.0 for Extreme, 0.75 for Severe, 0.4 otherwise
How much does it cost to use this MCP?
Every tool call uses pay-per-event pricing at $0.045 per call. There is no subscription, no minimum commitment, and no charge for idle time.
| Scenario | Tool calls | Cost per call | Total cost |
|---|---|---|---|
| Single region readiness check | 1 | $0.045 | $0.045 |
| Full resilience report (1 region) | 1 | $0.045 | $0.045 |
| Compare 5 dimensions separately | 5 | $0.045 | $0.225 |
| Weekly scan of 10 regions (1 report each) | 10 | $0.045 | $0.450 |
| Monthly portfolio monitoring (50 regions) | 50 | $0.045 | $2.25 |
Apify's free tier includes $5 of monthly platform credits. At $0.045 per call, that covers 111 individual tool calls at no cost.
Using the API
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
# Call compute_transition_readiness_score via the actor run API
run = client.actor("ryanclinton/energy-transition-resilience-mcp").call(run_input={
"port": 3039
})
# For direct MCP tool calls, use the SSE endpoint from your MCP client
# Results from scheduled runs are available in the dataset:
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"Region: {item.get('region')} | Score: {item.get('overallResilienceScore')} | Grade: {item.get('grade')}")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
const run = await client.actor("ryanclinton/energy-transition-resilience-mcp").call({
port: 3039
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
console.log(`Region: ${item.region} | Score: ${item.overallResilienceScore} | Risk: ${item.riskLevel}`);
}
Direct MCP call (cURL)
# Call generate_energy_resilience_report directly via the MCP HTTP endpoint
curl -X POST "https://energy-transition-resilience-mcp.apify.actor/messages?sessionId=SESSION_ID" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "generate_energy_resilience_report",
"arguments": {
"region": "DE",
"sources": ["ev_infra", "fossil", "air_quality", "weather", "us_econ", "global_econ"],
"maxResults": 50
}
},
"id": 1
}'
# Open an SSE session first to get a sessionId:
curl -N "https://energy-transition-resilience-mcp.apify.actor/sse" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"
Tips for best results
-
Start with
generate_energy_resilience_reportfor a new region before drilling into individual dimensions. The full report costs the same as any single-dimension call ($0.045) and gives you the complete picture, including the A-F grade and specific recommendations. -
Use
maxResults: 100for EV readiness assessments in countries with large charging networks (UK, DE, FR, NL). The default of 50 is sufficient for smaller markets. Higher counts improve the density and fast-charger-ratio calculations. -
Select specific sources when you only need a subset. If you are only modeling economic price shock risk, call
detect_energy_price_shock_riskdirectly rather than the full network map — this is faster and costs the same. -
Use ISO 2-letter country codes for consistency. Region accepts any string, but using ISO codes (DE, FR, GB, US, JP) ensures reliable matching across Open Charge Map, OpenAQ, and World Bank APIs.
-
Schedule weekly resilience reports for portfolio regions using Apify's scheduling feature. Store results in the dataset and track
overallResilienceScoreover time to detect deteriorating regions before they become headline risk. -
Combine with the Energy Transition Intelligence MCP for US-focused analysis. The Resilience MCP provides the multi-country comparative view; the Intelligence MCP adds EIA grid stress and US carbon intensity signals for deeper US coverage.
-
For AI agent pipelines, call
compute_transition_readiness_scorefirst for the scored summary, then call specific sub-tools (e.g.,analyze_air_quality_correlation) only if the agent determines a dimension needs deeper investigation. This minimizes cost in automated workflows.
Combine with other Apify actors
| Actor | How to combine |
|---|---|
| EIA Energy Data | Add US grid generation mix and capacity data to supplement the FRED economic indicators in price shock analysis |
| NOAA Weather Alerts | Feed directly into assess_climate_vulnerability for deeper US severe weather analysis beyond MCP defaults |
| OpenAQ Air Quality | Pre-fetch air quality data for specific cities and pass to the correlation tool for hyper-local pollution analysis |
| World Bank Indicators | Pull custom indicator codes (renewable energy share, CO2 per kWh) to augment the World Bank data used in readiness scoring |
| FRED Economic Data | Fetch targeted FRED series (e.g., electricity prices CPI) to enrich price shock detection beyond the default energy price search |
| ECB Exchange Rates | Monitor EUR/USD and EUR/GBP stability trends as a leading indicator of energy import cost volatility |
| Eurostat EU Statistics | Pull nrg_t_pehex or nrg_t_2020 datasets for EU cross-border energy trade flows in the full resilience report |
Limitations
- Fossil fuel license data is UK-only. The NSTA data source covers North Sea licenses exclusively. The
compute_fossil_fuel_dependencytool will return limited or zero results for non-UK regions. For other geographies, only thedependencyIndexderived from available records is meaningful. - NOAA weather alerts are US-centric. The
assess_climate_vulnerabilitytool works globally via OpenAQ air quality data, but weather severity distribution reflects NOAA's US alert system. Non-US regions will show low alert counts that underestimate actual climate hazards. - EV station data quality varies by country. Open Charge Map coverage is denser in Europe, the US, and Australia. Remote regions or emerging markets may return insufficient station counts, causing
readinessScoreto reflect data scarcity rather than true infrastructure gaps. - Economic indicator freshness varies. FRED data updates daily to quarterly depending on the series. World Bank indicators may be 1-2 years behind. ECB rates update daily. The
volatilityIndexreflects historical variance, not forward-looking projections. - Scores are normalized to the data available. If fewer than the requested
maxResultsrecords are returned by a source, scores are computed on the available subset. Smaller datasets produce less reliable coefficients of variation. - No historical trend tracking. Each tool call returns a point-in-time assessment. Trend analysis requires scheduling repeated runs and comparing
overallResilienceScorevalues over time via the Apify dataset. - Concurrent actor calls consume Apify credits. The
generate_energy_resilience_reportandmap_energy_transition_networktools dispatch up to 8 parallel actor calls. These sub-actor calls are charged separately against your Apify account in addition to the $0.045 MCP tool call fee. - No custom weighting. The 5-dimension composite weights (EV: 25%, fossil: 20%, air: 15%, climate: 20%, economic: 20%) are fixed in code. If your use case requires different weighting, call individual sub-tools and apply custom weights in post-processing.
Integrations
- Apify API — trigger resilience assessments and retrieve results programmatically from any language
- Webhooks — get notified when scheduled resilience reports complete, enabling downstream alerts or data pushes
- Zapier — push resilience scores to spreadsheets, Slack channels, or CRM systems when runs complete
- Make — build no-code workflows that trigger region assessments on a schedule and route results to dashboards
- Google Sheets — export transition readiness scores and dimension breakdowns for portfolio monitoring
- LangChain / LlamaIndex — use this MCP server as a tool provider in RAG pipelines or autonomous energy research agents
Troubleshooting
-
Tool returns empty or null sub-reports — this is expected when the source data returns zero records. The NSTA fossil fuel source is UK-only; non-UK regions return an empty license set, so
fossilFuelDependencywill be null in the full report. Usecompute_fossil_fuel_dependencyonly for UK regions. -
Low readiness scores despite known infrastructure — verify the
regionargument uses the correct format expected by each underlying API. Open Charge Map uses country codes likeGBorUS. OpenAQ also uses 2-letter ISO codes. Mismatched codes (e.g.,UKvsGB) cause data fetches to return zero results, driving scores down artificially. -
Run timeout on full resilience reports — the
generate_energy_resilience_reporttool fires 8 parallel actor calls with a 120-second timeout each. On Apify's free tier, concurrent actor slots may be limited. ReducemaxResultsto 25 or select a subset ofsourcesto speed up execution. -
MCP client shows connection errors — confirm you are using the SSE URL (
/sseendpoint) and not the actor run API URL. The MCP session starts with a GET to/sse; tool calls go to/messages?sessionId=SESSION_ID. Using the wrong endpoint returns a 400 error. -
shockProbabilityis always 0 — this happens when only one data point is returned per source (CV requires at least two values). IncreasemaxResultsor broadensearchTextfor the FRED source to ensure multiple indicator series are returned.
Responsible use
- This MCP accesses only publicly available data from government registries and open-data platforms.
- Open Charge Map, NSTA, OpenAQ, NOAA, FRED, World Bank, ECB, and Eurostat data is available under their respective open-access terms.
- Do not use resilience scores to make investment decisions without validation against primary source data and domain expert review.
- For guidance on web scraping legality, see Apify's guide.
FAQ
How do I compute energy transition readiness for a specific country?
Call compute_transition_readiness_score with the ISO 2-letter country code as region (e.g., "FR" for France, "DE" for Germany, "US" for the United States). The tool fetches data from all 6 sources simultaneously and returns the 5-dimension weighted composite with a letter grade.
How many tool calls can I make per month for free? Apify's free tier includes $5 of monthly credits. At $0.045 per tool call, that covers 111 calls per month at no cost. Paid plans start at $49/month with substantially higher credit allocations.
What regions and countries does this MCP cover? EV infrastructure (Open Charge Map) and air quality (OpenAQ) are global. World Bank and ECB cover all major economies. FRED covers US economic indicators. Fossil fuel license data (NSTA) covers the UK North Sea only. Eurostat covers EU member states. Climate vulnerability (NOAA weather) is primarily US-focused.
How accurate is the transition readiness score? The score is a normalized composite of available data, not a certified benchmark. It is calibrated to produce meaningful relative rankings between regions — a region scoring 75 is genuinely better positioned than one scoring 35. Absolute values should be interpreted as directional indicators, not precise measurements. The letter grade (A-F) is the most robust output for stakeholder communication.
How is this different from the Energy Transition Intelligence MCP? The Energy Transition Intelligence MCP focuses on US energy markets using EIA grid generation and carbon intensity data. This Resilience MCP takes a multi-country view with 8 data sources including EU statistics (Eurostat), global development indicators (World Bank), and normalized air quality correlation, making it better suited for international comparative analysis.
Can I use this MCP in an AI agent pipeline? Yes. The server runs as a persistent SSE MCP endpoint on Apify's Standby infrastructure. Any MCP-compatible client — Claude, Cursor, Windsurf, Cline, or a custom LangChain agent — can connect and call tools. Results return as structured JSON, safe for downstream parsing.
How fresh is the data? Each tool call fetches data live from the underlying sources at query time. Air quality and weather data are near real-time (minutes to hours). FRED and ECB rates update daily. World Bank development indicators are updated annually. Eurostat energy balance data is updated quarterly.
Can I schedule resilience monitoring for multiple regions? Yes. Use Apify's built-in scheduler to run the actor on any interval (daily, weekly, monthly). Combine with the Apify API or webhooks to route results to a Google Sheet or dashboard. Results for each run are stored in the actor's dataset.
Is it legal to use government and open data this way? Yes. All 8 data sources — Open Charge Map, NSTA, OpenAQ, NOAA, FRED, World Bank, ECB, and Eurostat — publish data under open-access or public-domain terms. This MCP is a structured client for these APIs. See Apify's guide on web scraping legality.
What happens if one data source is unavailable?
Each source is called with a 120-second timeout. If a source returns an error, the MCP logs the error and continues processing available sources. The affected sub-report will return null or an empty result in the final output. The executiveSummary will reflect only the dimensions where data was successfully retrieved.
Can I weight the 5 dimensions differently for my use case?
The composite weights (EV 25%, fossil 20%, air quality 15%, climate 20%, economic 20%) are fixed. To apply custom weights, call the 5 individual sub-tools (assess_ev_infrastructure_readiness, compute_fossil_fuel_dependency, analyze_air_quality_correlation, assess_climate_vulnerability, detect_energy_price_shock_risk) and apply your own weighting to the scores returned.
How does the network graph work?
The map_energy_transition_network tool builds a graph with typed nodes for each data record (ev_station, oil_license, air_quality, weather_event, economic_indicator, currency, stat_series). Edges represent three relationship types: EV-to-air-quality proximity (haversine <100 km), oil-license-to-economic-indicator impact, and weather-event-to-EV-station climate vulnerability. The result includes full node and edge arrays plus a summary string with counts by node type.
Help us improve
If you encounter issues, enable run sharing to help us debug faster:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong. 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 integrations or enterprise energy analysis workflows, 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 Energy Transition Resilience MCP?
Start for free on Apify. No credit card required.
Open on Apify Store