Climate Financial Stranded Asset MCP Server
Climate financial stranded asset analysis for AI agents — this MCP server gives any LLM client direct access to eight quantitative climate risk tools covering carbon asset stranding, portfolio climate VaR, physical hazard exposure, biodiversity-financial coupling, transition contagion, and full TCFD reporting. It is built for investment analysts, risk teams, and sustainability professionals who need institutional-grade climate metrics without constructing the data infrastructure themselves.
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 |
|---|---|---|
| compute-stranding-probability | Real options with regime switching for carbon assets | $0.08 |
| simulate-climate-var | Monte Carlo with GPD tail fitting | $0.08 |
| assess-physical-risk | Spatial overlay of hazard maps on facilities | $0.06 |
| compute-biodiversity-risk | TNFD nature dependency risk coupling | $0.06 |
| model-transition-contagion | Climate-adjusted DebtRank propagation | $0.08 |
| score-transition-alignment | DTW on emissions vs IPCC pathways | $0.06 |
| analyze-carbon-exposure | Portfolio carbon intensity analysis | $0.06 |
| generate-tcfd-report | Full TCFD climate risk report | $0.12 |
Example: 100 events = $8.00 · 1,000 events = $80.00
Connect to your AI agent
Add this MCP server to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.
https://ryanclinton--climate-financial-stranded-asset-mcp.apify.actor/mcp{
"mcpServers": {
"climate-financial-stranded-asset-mcp": {
"url": "https://ryanclinton--climate-financial-stranded-asset-mcp.apify.actor/mcp"
}
}
}Documentation
Climate financial stranded asset analysis for AI agents — this MCP server gives any LLM client direct access to eight quantitative climate risk tools covering carbon asset stranding, portfolio climate VaR, physical hazard exposure, biodiversity-financial coupling, transition contagion, and full TCFD reporting. It is built for investment analysts, risk teams, and sustainability professionals who need institutional-grade climate metrics without constructing the data infrastructure themselves.
The server orchestrates 14 live data sources — SEC EDGAR, FRED, World Bank, OECD, Eurostat, IMF, OpenAQ, IUCN Red List, GBIF, UN COMTRADE, OpenCorporates, GLEIF, Nominatim, and SEC insider filings — and applies six quantitative algorithms to produce TCFD-aligned output. Connect once via the Model Context Protocol and every supported AI client can call all eight tools without additional setup.
What data can you extract?
| Data Point | Source | Example |
|---|---|---|
| 📊 Carbon asset stranding probability | Markov regime-switching Monte Carlo | XOM: 73% stranding prob, $2.1B expected loss |
| 📉 Portfolio climate VaR at 99% confidence | Monte Carlo (10,000 paths) + GPD tails | $485M VaR99, $612M Expected Shortfall |
| 🏭 Physical hazard exposure by facility | Spatial lat/lng overlay + OpenAQ | Midland TX refinery: 34% composite risk score |
| 🌿 Biodiversity-financial risk (TNFD) | IUCN Red List + GBIF occurrence trends | Agriculture co: "high" TNFD category, 12 VU species |
| 🔗 Transition contagion amplification factor | Climate-adjusted DebtRank propagation | 3.2x amplification across 8-node exposure network |
| 📐 Emissions trajectory alignment score | Dynamic Time Warping vs IEA/IPCC pathways | Alignment score 0.41, gap years: 2026, 2027, 2029 |
| 💨 Scope 1/2/3 carbon exposure analysis | SEC EDGAR + sector benchmarks | 850 tCO2e/$M vs sector avg 720, 18% above benchmark |
| 📋 TCFD findings across 4 governance pillars | Aggregated from all tools | 3 critical findings, overall risk rating: "high" |
| 🌐 SEC corporate climate filings | SEC EDGAR + SEC insider filing analyzer | Climate disclosures, emissions data per company |
| 📡 Real-time air quality monitoring (PM2.5, AQI) | OpenAQ | Live AQI at facility coordinates (200km radius) |
| 🐾 Biodiversity threat assessments | IUCN Red List | VU/EN/CR species status and GBIF population trends |
| 📈 Carbon pricing policy data | OECD, World Bank, Eurostat | EU ETS price series, carbon tax schedules |
| 🏢 Corporate registry and legal entity data | OpenCorporates + GLEIF LEI | Subsidiary mapping for financial exposure networks |
| 📉 Macro economic indicators | FRED, IMF, World Bank | Oil price series (WTI), energy CPI, GDP data |
Why use the Climate Financial Stranded Asset MCP Server?
Building climate risk quantification from scratch requires sourcing data from a dozen APIs, implementing actuarial models, and maintaining the pipeline as the underlying data changes. A single stranded asset analysis for a 10-stock portfolio can take a senior analyst two to three days using Excel and point-in-time data. Getting to TCFD-compliant output typically requires an expensive vendor — MSCI Climate, Sustainalytics, or S&P Trucost — or months of internal model development costing well over $50,000 annually.
This MCP server reduces that to a single tool call. An AI agent connected via MCP can generate a full TCFD report, run Monte Carlo climate VaR, identify stranding probabilities, and map physical hazard exposure in one conversation — using the same algorithms institutional risk desks rely on.
- Scheduling — run climate risk assessments daily, quarterly, or on custom intervals to track portfolio exposure as policy signals evolve
- API access — trigger tool calls from Python, JavaScript, Claude Desktop, Cursor, or any MCP-compatible HTTP client
- 14 live data sources — all underlying actor calls use fresh public API data with no stale cache
- Monitoring — get Slack or email alerts when runs fail or produce unexpected results via Apify platform integrations
- Integrations — connect output to Zapier, Make, Google Sheets, or webhooks to feed downstream risk workflows
Features
- Carbon asset stranding probability via real options with Markov regime switching — models asset values under two carbon price regimes (current policy: $30–$70/tCO2e over 21 years; net zero: $30–$600/tCO2e) with a Markov transition matrix (8% annual probability of transitioning to net zero regime, 3% reversion probability), running up to 5,000 Monte Carlo paths to derive book-value-weighted stranding probabilities and early-divestment real option values per asset
- Monte Carlo portfolio climate VaR with Generalized Pareto Distribution tail fitting — runs up to 10,000 simulations across three correlated risk factors (carbon price shock volatility 0.4, energy cost shock 0.25, regulatory shock 0.15), fits GPD tails using method-of-moments estimation above the 95th-percentile threshold, and reports VaR and Expected Shortfall at 95%, 99%, and 99.5% confidence levels
- Spatial physical hazard overlay across 7 hazard types — overlays earthquake (Ring of Fire and tectonic boundaries), flood (coastal/river proximity by latitude/longitude zone), wildfire (30–45° and 10–25° dry latitude bands), hurricane (tropical warm ocean basins), drought, sea level rise, and live air quality (OpenAQ PM2.5 within 200km via Haversine distance) against facility coordinates; composite risk = sum(hazard_probability × asset_value × vulnerability_factor)
- TNFD biodiversity-financial risk coupling for 10 ecosystem services — scores pollination, water purification, soil formation, climate regulation, flood protection, carbon sequestration, nutrient cycling, pest control, raw materials, and genetic resources using sector-level dependency intensity tables, IUCN Red List threat scores (LC=0.1 to EX=1.0), and GBIF population trend data; produces TNFD risk categories (negligible/low/moderate/high/very_high) per entity
- Climate-adjusted DebtRank for systemic transition contagion — propagates carbon price shocks through a user-defined financial exposure network; initial shock = carbonIntensity × carbonPriceIncrease × fossilRevenueShare; stress propagates with climate correlation adjustment (entities sharing high carbon intensity amplify each other's distress); returns amplification factor, per-node climate debt rank, and iterations to convergence
- Dynamic Time Warping emissions trajectory alignment — compares normalized company emissions trajectories (first year indexed to 100) against IEA Net Zero (reaching 0 by 2050) or IPCC 1.5C reference pathways; DTW distance computed via D(i,j) = cost(i,j) + min(D(i-1,j), D(i,j-1), D(i-1,j-1)); alignment score = 1/(1 + DTW_distance/path_length); identifies gap years where entity emissions exceed reference by more than 20%
- Sector carbon intensity benchmarking across 14 sectors — energy: 850, oil_gas: 950, utilities: 720, mining: 600, chemicals: 380, transportation: 310, agriculture: 290, materials: 480, industrials: 220, real estate: 95, consumer staples: 120, healthcare: 45, technology: 30, communication services: 20 tCO2e/$M revenue
- TCFD-structured reporting across 4 pillars — aggregates all analysis dimensions into governance, strategy, risk management, and metrics/targets findings with severity ratings (low/medium/high/critical) and quantitative recommendations
- Seeded Monte Carlo for reproducibility — uses a linear congruential generator (seed default: 42) with Box-Muller normal sampling so simulation results are reproducible across runs with identical inputs
- Parallel actor orchestration across 14 data sources — underlying calls to SEC EDGAR, World Bank, FRED, IUCN, GBIF, OpenAQ, and other sources run concurrently via Promise.all, minimizing total latency
- Standby mode (always-on MCP endpoint) — runs in Apify Standby mode at the
/mcpendpoint, eliminating cold-start latency for interactive agent sessions
Use cases for climate financial stranded asset analysis
Investment portfolio stress testing
Asset managers and risk officers need to quantify how transition scenarios affect portfolio value before regulatory stress tests or internal risk reviews. Connect this MCP server to your analysis workflow, pass in a list of equity positions with their carbon intensity and fossil revenue share, and receive Monte Carlo VaR figures at 95%, 99%, and 99.5% confidence alongside per-asset stranding probabilities — all calibrated to IEA and IPCC carbon price pathways. A full 10-asset analysis runs in under two minutes.
TCFD and SFDR climate disclosure
Sustainability teams preparing TCFD Task Force disclosures or SFDR Article 8/9 fund reporting need structured climate risk findings across all four TCFD pillars. The generate_tcfd_report tool aggregates stranding probability, climate VaR, physical risk, biodiversity exposure, and emissions alignment into a single TCFD-structured report with severity ratings and actionable recommendations — giving sustainability teams a documented, quantitative starting point for board-level review.
Physical asset and infrastructure risk mapping
Infrastructure investors, insurers, and corporate risk teams assessing physical climate exposure can geocode facility addresses or pass coordinates directly to assess_physical_risk and receive multi-hazard composite risk scores overlaid with live air quality data. The tool identifies the dominant hazard type across a portfolio and ranks facilities by composite expected loss — useful for prioritizing adaptation capital expenditure.
Net-zero alignment and shareholder engagement
ESG research firms and engagement teams tracking corporate emissions trajectories against science-based targets can use score_transition_alignment to compare historical emissions series against IEA Net Zero or IPCC 1.5C reference pathways using Dynamic Time Warping distance. The output identifies specific gap years where an entity's trajectory deviates more than 20% from the reference, providing a defensible alignment score for shareholder engagement letters and proxy voting decisions.
Systemic climate risk and financial contagion modelling
Central banks, financial stability boards, and academic researchers modelling systemic transition risk can use model_transition_contagion to propagate a carbon price shock through a financial exposure network using the climate-adjusted DebtRank algorithm. Input the network of entity financial exposures, specify the carbon price increase, and receive amplification factors, per-node stress levels, and convergence data — output consistent with FSB and BIS climate stress-test methodologies.
Biodiversity and nature risk for TNFD reporting
Companies preparing Taskforce on Nature-related Financial Disclosures reports need to quantify their dependencies on ecosystem services. The compute_biodiversity_risk tool pulls IUCN Red List threat status and GBIF species occurrence trends for the geography of operations, scores 10 ecosystem service dependencies by sector, and assigns a TNFD risk category — giving sustainability teams a defensible, data-backed starting point for nature-related disclosure.
How to use the climate financial stranded asset MCP server
- Connect to your AI client — add the MCP server URL
https://climate-financial-stranded-asset-mcp.apify.actor/mcpto Claude Desktop, Cursor, or any MCP-compatible client using the JSON config below. No code is required. - Describe your portfolio — tell your AI agent which companies to analyze, their sectors, and what carbon intensity data you have. For physical risk, include facility addresses or coordinates. The agent calls the appropriate tools automatically.
- Run the analysis — the agent calls the relevant tools in sequence or parallel. A full TCFD report for a 10-asset portfolio typically takes 60–120 seconds. A single carbon exposure analysis returns in under 15 seconds.
- Review and export results — output is structured JSON returned directly in the conversation. Ask the agent to format findings as a table, extract specific metrics, or push results to a downstream system via webhook.
Connect via Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"climate-stranded-asset": {
"type": "http",
"url": "https://climate-financial-stranded-asset-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Connect via Cursor or any MCP client
Use the endpoint https://climate-financial-stranded-asset-mcp.apify.actor/mcp with a Bearer token header containing your Apify API token.
Input parameters
This is an MCP server with no traditional actor input. All parameters are passed as tool call arguments by the AI agent. The server exposes 8 tools:
| Tool | Key Parameters | Description |
|---|---|---|
compute_stranding_probability | assets[], discountRate, numPaths | Array of AssetPosition objects. Each requires ticker, name, sector, bookValue, marketValue, carbonIntensity (tCO2e/$M revenue), fossilRevenueShare (0–1), annualEmissions (tCO2e). Optional: lat, lng, jurisdiction. Default: discountRate=0.05, numPaths=5000. |
simulate_climate_var | assets[], numSimulations, carbonPriceVolatility, energyCostVolatility, regulatoryVolatility | Same AssetPosition array. numSimulations default 10,000. Volatility defaults: carbon 0.4, energy 0.25, regulatory 0.15. |
assess_physical_risk | facilities[] | Array of facility objects: name, lat, lng, assetValue (USD), facilityType. Provide address instead of coordinates to trigger Nominatim geocoding. |
compute_biodiversity_risk | entities[], species[], region | Each entity requires name, sector, revenue, locations[] (lat/lng array). species and region are optional — defaults to pollinator, mangrove, coral, and forest queries. |
model_transition_contagion | entities[], carbonPriceIncrease | Each entity requires name, carbonIntensity, fossilRevenueShare, economicValue, exposures[] (target + amount). carbonPriceIncrease in USD/tCO2e, default 100. |
score_transition_alignment | entities[], referencePathway | Each entity requires name and emissionsHistory[] (array of {year, scope1, scope2, scope3?}). referencePathway: "IEA_NZ" or "IPCC_15C". |
analyze_carbon_exposure | assets[], carbonPrice | Same AssetPosition array. carbonPrice in USD/tCO2e for cost calculation, default 50. |
generate_tcfd_report | assets[], facilities[], emissionsHistory[], carbonPrice, carbonPriceIncrease | Full portfolio data. Runs all six algorithms internally and aggregates findings across all four TCFD pillars. |
AssetPosition schema (used by 4 tools)
| Field | Type | Required | Description |
|---|---|---|---|
ticker | string | Yes | Stock ticker symbol (e.g. "CVX") |
name | string | Yes | Company name |
sector | string | Yes | Sector key — see 14-sector benchmark table in Features |
bookValue | number | Yes | Book value in USD |
marketValue | number | Yes | Market value in USD |
carbonIntensity | number | Yes | tCO2e per $M revenue |
fossilRevenueShare | number | Yes | Fraction of revenue from fossil fuels (0–1) |
annualEmissions | number | Yes | Total annual emissions in tCO2e |
lat | number | No | Facility latitude for physical risk overlay |
lng | number | No | Facility longitude |
jurisdiction | string | No | Regulatory jurisdiction (e.g. "US", "EU") |
Input examples
Single asset stranding probability check:
{
"assets": [
{
"ticker": "CVX",
"name": "Chevron Corporation",
"sector": "oil_gas",
"bookValue": 156000000000,
"marketValue": 295000000000,
"carbonIntensity": 920,
"fossilRevenueShare": 0.95,
"annualEmissions": 58000000,
"lat": 37.8,
"lng": -122.3,
"jurisdiction": "US"
}
],
"discountRate": 0.05,
"numPaths": 5000
}
Portfolio climate VaR with two assets and custom volatility:
{
"assets": [
{
"ticker": "NEE",
"name": "NextEra Energy",
"sector": "utilities",
"bookValue": 42000000000,
"marketValue": 110000000000,
"carbonIntensity": 280,
"fossilRevenueShare": 0.35,
"annualEmissions": 8200000
},
{
"ticker": "RIO",
"name": "Rio Tinto",
"sector": "mining",
"bookValue": 32000000000,
"marketValue": 98000000000,
"carbonIntensity": 580,
"fossilRevenueShare": 0.4,
"annualEmissions": 27000000
}
],
"numSimulations": 10000,
"carbonPriceVolatility": 0.45,
"energyCostVolatility": 0.30,
"regulatoryVolatility": 0.20
}
Physical risk for three facilities across different geographies:
{
"facilities": [
{
"name": "Permian Basin Refinery",
"lat": 31.8,
"lng": -102.4,
"assetValue": 2400000000,
"facilityType": "refinery"
},
{
"name": "Gulf Coast LNG Terminal",
"lat": 29.7,
"lng": -93.8,
"assetValue": 890000000,
"facilityType": "lng_terminal"
},
{
"name": "Rotterdam Petrochemical Plant",
"lat": 51.9,
"lng": 4.4,
"assetValue": 1100000000,
"facilityType": "petrochemical"
}
]
}
Input tips
- Use market value, not book value, for carbon intensity calibration — the model assumes a 12% revenue yield on market value; carbon intensity expressed as tCO2e per $M revenue should match that scale
- Provide lat/lng directly for physical risk accuracy — the spatial hazard overlay produces more reliable composite risk scores when exact coordinates are provided rather than relying on Nominatim geocoding from a text address
- Pass all portfolio assets in a single call — Monte Carlo climate VaR is more accurate at portfolio level when all positions are processed together, as correlated shocks are modelled across the whole portfolio simultaneously
- Use sector names that match the benchmark table — recognized sectors include
energy,utilities,materials,industrials,oil_gas,mining,chemicals,transportation,agriculture,financials,technology,healthcare,real_estate, andcommunication_services; unrecognized sectors fall back to the default benchmark (150 tCO2e/$M revenue) - For TCFD reports, use
generate_tcfd_reportas a single call — it runs all six algorithms internally; no need to call individual tools first
Output example
Full TCFD report output for a mixed-sector portfolio:
{
"tool": "generate_tcfd_report",
"result": {
"overallClimateRisk": "high",
"climateRiskScore": 72,
"strandingProbability": 0.61,
"climateVaR99": 487200000,
"physicalRisk": 143800000,
"transitionRisk": 0.68,
"alignmentScore": 0.38,
"findings": [
{
"category": "strategy",
"subcategory": "transition_risk",
"finding": "Portfolio stranding probability of 61% exceeds the 50% high-risk threshold. CVX and XOM contribute 78% of total expected loss under net-zero transition.",
"severity": "critical",
"recommendation": "Reduce fossil revenue share exposure by 15–20% through divestment of highest-stranding-probability assets. Redeploy capital into positions with fossilRevenueShare < 0.2."
},
{
"category": "metrics_targets",
"subcategory": "carbon_exposure",
"finding": "Portfolio weighted-average carbon intensity of 685 tCO2e/$M revenue is 2.9x the sector peer median of 238. Scope 3 emissions represent an estimated 67% of total footprint.",
"severity": "high",
"recommendation": "Set Scope 3 reduction targets aligned with SBTi FLAG methodology. Engage top 5 suppliers representing 43% of Scope 3 on emissions reduction roadmaps."
},
{
"category": "risk_management",
"subcategory": "physical_risk",
"finding": "Gulf Coast LNG Terminal faces composite physical risk of 38.4% of asset value driven by hurricane (18.2%) and sea level rise (12.1%) hazards. OpenAQ AQI of 142 adds regulatory exposure.",
"severity": "high",
"recommendation": "Commission site-specific resilience assessment for Gulf Coast terminal. Model 1m and 2m sea level rise scenarios against current flood barrier specifications."
},
{
"category": "governance",
"subcategory": "disclosure",
"finding": "Emissions trajectory alignment score of 0.38 indicates significant divergence from IEA Net Zero pathway. Gap years identified: 2026, 2027, 2029, 2031.",
"severity": "medium",
"recommendation": "Establish board-level climate risk committee with quarterly reporting cadence. Integrate DTW alignment score into executive compensation scorecard."
}
],
"recommendations": [
"Divest assets with strandingProbability > 0.65 within 18 months to reduce transition risk",
"Implement climate VaR limit of $400M at 99% confidence; current exposure $487M exceeds limit",
"Begin TNFD nature-related disclosure for agriculture and mining portfolio companies in FY2026",
"Set internal carbon price of $80/tCO2e for capital allocation decisions"
]
}
}
Output fields
| Field | Type | Description |
|---|---|---|
overallClimateRisk | string | TCFD aggregate risk rating: low, medium, high, or critical |
climateRiskScore | number | Composite score 0–100 across all climate dimensions |
strandingProbability | number | Portfolio book-value-weighted stranding probability (0–1) |
climateVaR99 | number | Portfolio climate Value at Risk at 99% confidence (USD) |
physicalRisk | number | Total physical risk expected loss across all facilities (USD) |
transitionRisk | number | Normalized transition risk score (0–1) |
alignmentScore | number | DTW-based emissions alignment score (0–1; 1.0 = fully aligned with reference pathway) |
findings[].category | string | TCFD pillar: governance, strategy, risk_management, or metrics_targets |
findings[].severity | string | Finding severity: low, medium, high, or critical |
findings[].finding | string | Narrative finding with specific quantitative metrics |
findings[].recommendation | string | Actionable recommendation with quantitative targets |
recommendations[] | string[] | Top-level portfolio-wide priority recommendations |
assets[].ticker | string | Asset identifier |
assets[].strandingProbability | number | Per-asset stranding probability from Monte Carlo regime switching (0–1) |
assets[].expectedLoss | number | Expected loss under regime-switching model (USD) |
assets[].optionValue | number | Real option value of early divestment (USD) |
assets[].currentPolicyValue | number | DCF value under current policy carbon prices (USD) |
assets[].netZeroValue | number | DCF value under net-zero carbon price path $30–$600 (USD) |
vaR.confidenceLevel | number | Confidence level (0.95, 0.99, or 0.995) |
vaR.climateVaR | number | Climate VaR at specified confidence level (USD) |
vaR.expectedShortfall | number | Expected Shortfall (CVaR) at specified confidence level (USD) |
vaR.gpdShape | number | Generalized Pareto Distribution shape parameter xi |
vaR.gpdScale | number | GPD scale parameter sigma |
vaR.monteCarloPathCount | number | Number of Monte Carlo simulation paths run |
vaR.worstCaseLoss | number | Worst single simulated portfolio loss (USD) |
facilities[].compositeRisk | number | Sum of expected losses across all hazard types (USD) |
facilities[].hazards[].hazardType | string | One of: earthquake, flood, wildfire, hurricane, drought, air_quality, sea_level_rise |
facilities[].hazards[].probability | number | Annual exceedance probability for the hazard type |
facilities[].hazards[].vulnerabilityFactor | number | Asset vulnerability multiplier (0.2–0.7 depending on hazard) |
facilities[].hazards[].expectedLoss | number | probability × assetValue × vulnerabilityFactor (USD) |
biodiversity[].tnfdCategory | string | TNFD risk tier: negligible, low, moderate, high, or very_high |
biodiversity[].dependencies[].service | string | Ecosystem service (e.g. pollination, water_purification, carbon_sequestration) |
biodiversity[].dependencies[].dependencyIntensity | number | Sector-level dependency on this ecosystem service (0–1) |
biodiversity[].dependencies[].financialRisk | number | Financial risk from this dependency (USD) |
biodiversity[].iucnThreatCount | number | Count of VU/EN/CR/EW-status species in the analysis |
biodiversity[].speciesAtRisk | number | Count of GBIF species with declining population trend (< -0.2) |
contagion.systemicClimateRisk | number | Climate DebtRank = sum(stress_i × economic_value_weight_i) |
contagion.amplificationFactor | number | Ratio of systemic risk to initial shock magnitude |
contagion.maxDebtRank | number | Highest single-entity climate debt rank in the network |
contagion.iterations | number | DebtRank propagation iterations to convergence |
alignment[].dtwDistance | number | Raw DTW distance between entity trajectory and reference pathway |
alignment[].alignmentScore | number | Normalized score 0–1; 1/(1 + DTW_distance/path_length) |
alignment[].gapYears[] | number[] | Years where entity emissions exceed reference by more than 20% |
carbonExposure[].carbonCost | number | Annual carbon cost at the given carbon price (USD) |
carbonExposure[].revenueAtRisk | number | Revenue at risk from carbon cost as fraction of total revenue |
carbonExposure[].benchmarkIntensity | number | Sector benchmark carbon intensity (tCO2e/$M revenue) |
carbonExposure[].relativeIntensity | number | Entity intensity relative to sector benchmark (ratio) |
How much does it cost to run climate stranded asset analysis?
This MCP server uses pay-per-event pricing — you pay per tool call. Platform compute costs are included in the price. There is no subscription or monthly minimum.
| Tool | Price per call | Typical calls per session |
|---|---|---|
compute_stranding_probability | $0.060 | 1–5 (per batch of assets) |
simulate_climate_var | $0.065 | 1–3 |
assess_physical_risk | $0.055 | 1–5 (per facility batch) |
compute_biodiversity_risk | $0.050 | 1–3 |
model_transition_contagion | $0.060 | 1–2 |
score_transition_alignment | $0.050 | 1–3 |
analyze_carbon_exposure | $0.055 | 1–5 |
generate_tcfd_report | $0.065 | 1 |
Scenario cost estimates:
| Scenario | Tool calls | Estimated cost |
|---|---|---|
| Single asset stranding check | 1 | $0.060 |
| Full portfolio VaR + stranding (10 assets) | 2 | $0.125 |
| Physical risk mapping (5 facilities) | 1 | $0.055 |
| Complete TCFD report (all tools) | 1 | $0.065 |
| Daily automated risk monitoring | 8–12 per day | $0.50–$0.75/day |
| Monthly institutional risk review | ~50 calls | ~$2.75–$3.25 |
You can set a maximum spending limit per run in Apify to control costs. The server stops accepting new tool calls when your spending limit is reached and returns a Spending limit reached message for the blocked call.
Compare this to MSCI Climate Risk, Sustainalytics, or S&P Trucost at $20,000–$100,000+ per year — with this MCP server, most teams spend under $10/month for comparable quantitative analytics without a vendor contract.
Use the climate financial stranded asset MCP server via API
Python
from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
# The MCP server runs in Standby mode — call it via the MCP endpoint directly.
# For programmatic access via Apify API, trigger a run to obtain the standby URL.
actor_client = client.actor("ryanclinton/climate-financial-stranded-asset-mcp")
run = actor_client.start()
print(f"MCP server running at: https://climate-financial-stranded-asset-mcp.apify.actor/mcp")
print(f"Run ID: {run['id']}")
print(f"Connect your MCP client to the endpoint above with your Apify token as a Bearer header.")
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "YOUR_API_TOKEN" });
// The MCP server runs persistently in Standby mode.
// Connect your MCP client to the permanent standby endpoint.
const mcpEndpoint = "https://climate-financial-stranded-asset-mcp.apify.actor/mcp";
console.log(`MCP endpoint: ${mcpEndpoint}`);
console.log("Add this URL to your Claude Desktop, Cursor, or MCP client config.");
console.log("Pass your Apify API token as: Authorization: Bearer YOUR_API_TOKEN");
cURL — call a tool directly
# Call compute_stranding_probability via raw MCP JSON-RPC
curl -X POST "https://climate-financial-stranded-asset-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "compute_stranding_probability",
"arguments": {
"assets": [
{
"ticker": "CVX",
"name": "Chevron Corporation",
"sector": "oil_gas",
"bookValue": 156000000000,
"marketValue": 295000000000,
"carbonIntensity": 920,
"fossilRevenueShare": 0.95,
"annualEmissions": 58000000
}
],
"discountRate": 0.05,
"numPaths": 5000
}
}
}'
# List all available tools
curl -X POST "https://climate-financial-stranded-asset-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{"jsonrpc": "2.0", "method": "tools/list", "id": 1, "params": {}}'
How the Climate Financial Stranded Asset MCP Server works
Algorithm 1: Real options with Markov regime switching (stranding probability)
The stranding probability engine models two carbon price regimes: current policy ($30–$70/tCO2e over 21 years) and net zero transition ($30–$600/tCO2e). A Markov chain governs regime transitions with an 8% annual probability of shifting to net zero and a 3% reversion probability — implying a steady-state net zero probability of 72.7% (cp_to_nz / (cp_to_nz + nz_to_cp)).
For each Monte Carlo path, the engine samples regime transitions at each time step using the Markov matrix, applies the prevailing carbon price to compute net cash flows (assuming 12% revenue yield on market value), and discounts using the provided discount rate. An asset is classified as stranded when the path's cumulative discounted cash flow falls below book value. The early-divestment option value is computed as max(0, marketValue − netZeroValue) × strandingProbability × 0.6, representing the premium a rational seller would pay to exit before transition. Live data from SEC EDGAR climate disclosures and World Bank CO2 emissions (EN.ATM.CO2E.KT) is fetched to contextualise carbon intensity inputs.
Algorithm 2: Monte Carlo climate VaR with GPD tail fitting
The VaR engine generates up to 10,000 portfolio loss scenarios by shocking three correlated risk factors simultaneously: carbon price shock (volatility 0.4), energy cost shock (0.25), and regulatory shock (one-sided, 0.15). Carbon price impact on each asset is proportional to carbonIntensity × fossilRevenueShare; energy cost impact is a uniform 5% of market value; regulatory impact adds a stranded-asset writedown equal to marketValue × fossilRevenueShare × regulatoryShock × 0.3.
Rather than relying solely on empirical quantiles (which underestimate extreme tail risk), the engine fits a Generalized Pareto Distribution to the exceedances above the 95th-percentile threshold using method-of-moments estimators (shape xi = (ratio − 1)/2; scale sigma = mean × (ratio + 1)/2). GPD quantiles at 99% and 99.5% are computed analytically using the formula VaR_p = threshold + sigma/xi × ((n/nu × (1−p))^(−xi) − 1). Expected Shortfall is derived as (VaR + scale − shape × threshold)/(1 − shape). Calibration data is pulled from FRED (WTI oil price DCOILWTICO, energy CPI CPIENGSL) and OECD carbon pricing statistics.
Algorithm 3: Spatial physical hazard overlay
Physical risk is computed as a spatial overlay of seven hazard probability maps against facility coordinates. Earthquake risk is elevated in three zones: Pacific West (120°E–180°E, <50° lat), Americas West coast, and the Mediterranean-Himalayan belt. Flood risk is elevated at low latitudes near major ocean coastlines. Wildfire zones are defined by the 30–45° and 10–25° latitude dry bands. Hurricane risk applies to the Atlantic (100°W–30°W) and West Pacific (100°E–180°E) basins at tropical latitudes.
For air quality, the engine fetches live PM2.5 readings from OpenAQ and uses Haversine distance to match each facility to the nearest monitoring station within 200km. AQI is normalized to [0,1] and converted to a hazard probability. The composite risk formula is sum(hazard_probability × assetValue × vulnerabilityFactor) across all seven hazards per facility, where vulnerability factors range from 0.2 (air quality) to 0.7 (wildfire). Facilities without coordinates are geocoded via the Nominatim actor.
Algorithm 4: TNFD biodiversity-financial risk coupling
The TNFD engine scores financial risk from ecosystem service dependencies. Sector-level dependency intensity tables encode 10 ecosystem services for each of agriculture, energy, mining, and a default sector. For example, agriculture has pollination dependency of 0.9 and soil formation of 0.95; energy has water purification of 0.6. IUCN Red List threat scores are mapped: LC=0.1, NT=0.3, VU=0.5, EN=0.7, CR=0.9, EW=0.95, EX=1.0. GBIF population trends provide degradation signals — negative trends indicate active biodiversity loss.
Financial risk per ecosystem service = dependencyIntensity × (avgIUCNThreat + GBIFDegradationRate)/2 × revenueExposure. The total risk is normalized by revenue to produce a risk ratio, which maps to the TNFD categories: <2% = negligible, 2–5% = low, 5–15% = moderate, 15–30% = high, >30% = very_high.
Algorithm 5: Climate-adjusted DebtRank contagion propagation
The DebtRank engine builds a financial exposure matrix W[i][j] = min(1, exposure_amount / entityJ_economicValue), representing the fraction of entity J's equity that entity I's distress would eliminate. Initial climate shocks are computed as min(1, carbonIntensity × carbonPriceIncrease × fossilRevenueShare / 1,000,000).
Stress propagates via the standard DebtRank iteration: hNew[j] = min(1, h[j] + sum_i(W[i][j] × delta_h[i] × (1 + climateCorrelation_ij))). The climate correlation adjustment amplifies propagation between entities that share high carbon intensity — climate co-exposure means correlated distress. Iteration continues until max change < 1e-6 or 100 iterations. The amplification factor = systemicClimateRisk / initialShockMagnitude, measuring how much the financial network multiplies the initial carbon price shock. OpenCorporates and GLEIF LEI data are fetched to support exposure network enrichment.
Algorithm 6: Dynamic Time Warping emissions trajectory alignment
Emissions histories are normalized to an index (first year = 100) and compared against IEA Net Zero (100 in 2020, reaching 0 in 2050) or IPCC 1.5C reference pathways using Dynamic Time Warping. The DTW cost matrix is computed as D(i,j) = |seq1[i] − seq2[j]| + min(D(i−1,j), D(i,j−1), D(i−1,j−1)), with backtracking to extract the optimal warping path. Alignment score = 1/(1 + DTW_distance/path_length), where 1.0 represents perfect alignment and 0.0 complete divergence. Gap years are identified where the entity's normalized emissions exceed the reference by more than 20%. Eurostat greenhouse gas emissions data is fetched to provide sector-level benchmarking context.
Tips for best results
-
Include fossil revenue share for every asset —
fossilRevenueShareis the single most impactful parameter in both the stranding and VaR models. Even a small error (e.g. 0.5 vs 0.3) can shift VaR by 30–40%. Use company annual report disclosures or segment revenue data to get this right. -
Run stranding and VaR in the same session — the tools share AssetPosition schema; passing the same asset array to both
compute_stranding_probabilityandsimulate_climate_vargives you complementary views (probability vs. dollar loss) without duplicating data entry. -
Use
generate_tcfd_reportfor board presentations — it runs all six algorithms in a single call and formats output across the four TCFD pillars. The recommendations array is designed to be usable verbatim in executive risk reports. -
Increase
numPathsfor high-stakes assets — the default 5,000 Monte Carlo paths gives standard error of ~0.7% on stranding probability. For individual assets with book values above $1B, increase to 10,000–20,000 for more stable estimates. -
Use the IPCC_15C pathway for the most stringent alignment test — the IPCC 1.5C pathway is steeper than IEA Net Zero; companies that score 0.6+ against IEA_NZ often fall below 0.4 against IPCC_15C. Report both to give the full range.
-
Provide facility coordinates for physical risk — the Nominatim geocoder is accurate for named locations but introduces uncertainty for industrial facility names. For infrastructure assets where physical risk materially affects valuation, always provide lat/lng directly.
-
Model financial network structure for contagion — the DebtRank result is only as good as the exposure network you provide. If you have banking relationships or inter-company loan data, encoding these as
exposures[]arrays substantially improves amplification factor accuracy. -
Combine with Company Deep Research — use it to gather sector, revenue, and emissions data for companies before passing them to this MCP server, reducing manual data preparation.
Combine with other Apify actors
| Actor | How to combine |
|---|---|
| Company Deep Research | Research target companies to extract sector, revenue, and carbon intensity data before feeding to stranding or VaR tools |
| SEC EDGAR Filing Analyzer | Extract Scope 1/2/3 emissions and fossil revenue share directly from 10-K and proxy filings before running alignment analysis |
| ESG Risk Assessment | Run ESG risk scoring alongside climate financial metrics for a full sustainability risk picture |
| B2B Lead Qualifier | Screen investment targets by ESG and climate scores before deeper stranded asset analysis |
| Website Content to Markdown | Convert corporate sustainability reports to markdown and feed to an LLM to extract emissions data for the alignment tool |
| FRED Economic Data | Pull WTI oil prices and energy CPI independently to calibrate custom volatility parameters for climate VaR |
| IUCN Red List Search | Fetch species threat data for a specific geography before running biodiversity risk with custom species lists |
Limitations
- Carbon intensity inputs are user-provided — the server does not independently source or verify company-level carbon intensity data. Results are only as accurate as the inputs you provide. Use SEC EDGAR disclosures or verified third-party data sources.
- Physical hazard probabilities are zone-based approximations — the spatial overlay uses latitude/longitude zone rules (e.g. Ring of Fire boundaries) rather than high-resolution hazard maps like FEMA FIRMs or NATCAT databases. Use results for screening and prioritisation, not insurance underwriting.
- Monte Carlo uses pseudo-random (seeded) simulation — the linear congruential generator is reproducible but not cryptographically random. For regulatory stress tests requiring certified randomness, supplement with dedicated actuarial models.
- Financial exposure network is self-reported — the DebtRank contagion model depends on the
exposures[]arrays you provide. If inter-entity exposures are incomplete or estimated, amplification factors will be understated. - Emissions trajectory alignment requires multi-year history — DTW alignment requires at least 2 data points; 5+ years of historical Scope 1/2 data produces more meaningful results. Single-year snapshots return an alignment score of 0.
- IUCN and GBIF data is geographically broad — the biodiversity tool fetches species data for named species or generic terms (pollinator, mangrove, coral) and does not filter by the exact facility coordinates. Results represent regional biodiversity risk, not site-specific ecological surveys.
- TCFD findings are algorithm-derived, not audited — the
generate_tcfd_reportoutput is structured to support TCFD disclosure but has not been reviewed by a registered auditor or climate consultant. It should be reviewed and validated before inclusion in regulated disclosures. - Standby mode requires an Apify account with sufficient balance — the server runs persistently; ensure your Apify account has sufficient credit or a billing plan to support extended sessions.
Integrations
- Zapier — trigger a climate VaR run when a new company is added to a CRM or spreadsheet, then push results to a risk dashboard
- Make — automate quarterly TCFD report generation by scheduling a generate_tcfd_report call and routing output to a PDF generator and email distribution list
- Google Sheets — pull stranding probability and VaR results directly into a portfolio monitoring spreadsheet for scenario comparison
- Apify API — call the MCP endpoint programmatically from Python or JavaScript to embed climate risk metrics in proprietary risk systems
- Webhooks — receive notifications when the server returns critical-severity TCFD findings for automated alerting
- LangChain / LlamaIndex — register the MCP server as a tool in an LLM agent pipeline for conversational portfolio climate risk analysis
Troubleshooting
-
Stranding probability returns 0 for all assets — confirm that
fossilRevenueShareis greater than 0 for fossil-exposed assets. IffossilRevenueShareis 0, carbon costs have no impact on cash flows and no stranding occurs regardless of carbon price path. -
Climate VaR is unexpectedly low for a high-carbon portfolio — check that
carbonIntensityis expressed as tCO2e per $M revenue, not total tonnes. An intensity of 920 for oil and gas is correct; an intensity of 920,000,000 (total tonnes) will produce overflow values that clamp to zero. -
Physical risk returns the same hazard score for different locations — this typically means both facilities are in the same latitude/longitude zone. The spatial overlay uses zone-based rules; facilities within the same broad region will have similar base probabilities before the air quality overlay differentiates them.
-
TCFD report shows no alignment findings — the alignment section requires
emissionsHistory[]data with at least 2 years of Scope 1 and Scope 2 data. IfemissionsHistoryis an empty array, the report will skip alignment analysis and note it as unavailable. -
Tool call returns
Spending limit reached— your Apify account has hit the per-run spending limit. Increase the limit in your actor run settings or break large analyses into smaller batches across multiple runs. -
DebtRank amplification factor is exactly 1.0 — this means no
exposures[]were provided for any entity. Without financial linkages between entities, stress cannot propagate and the network has no amplification effect. Add inter-entity exposure data to model contagion.
Responsible use
- This server only accesses publicly available data from government, academic, and open-data sources (SEC EDGAR, World Bank, IUCN, GBIF, FRED, OpenAQ, OpenCorporates, GLEIF, Eurostat, OECD, UN COMTRADE).
- Climate risk estimates are quantitative outputs from statistical models, not certified financial advice or regulated risk assessments.
- Results used in regulated disclosures (TCFD, SFDR, SEC climate rules) should be validated by a qualified climate risk professional before publication.
- Respect the terms of service of underlying data sources accessed via the orchestrated actor calls.
- For guidance on web scraping legality, see Apify's guide.
FAQ
How accurate is the carbon asset stranding probability output?
The stranding probability is a model output, not an observed market price. Accuracy depends primarily on the quality of carbon intensity and fossil revenue share inputs. The Markov regime-switching framework with 5,000 Monte Carlo paths produces standard errors of approximately ±0.7–1.5 percentage points on stranding probability for individual assets. The regime transition probabilities (8% annual probability of shifting to net zero) are set conservatively relative to IEA policy scenarios and can be adjusted via the model parameters.
How many assets can I analyze in a single tool call?
There is no hard limit on the number of assets per call. In practice, calls with 5–20 assets run reliably within the tool's 60-second internal actor timeout per data source. For portfolios larger than 50 assets, consider batching into multiple calls to avoid timeout issues on the upstream SEC EDGAR and World Bank data fetches.
What is the difference between Climate VaR and stranding probability?
Stranding probability measures the likelihood that an individual asset's discounted future cash flows fall below its book value under carbon price scenarios — it is a binary threshold event. Climate VaR measures the dollar loss at a given confidence level across the whole portfolio under a continuous distribution of carbon price, energy cost, and regulatory shocks. Use stranding probability for asset-level triage and climate VaR for portfolio-level risk limits.
Does the server support EU taxonomy alignment or Article 8/9 SFDR classification?
The server produces TCFD-structured output and IEA/IPCC alignment scores, which are inputs to EU taxonomy assessments, but it does not directly output EU taxonomy alignment percentages or SFDR Article 8/9 classification. Use the TCFD report findings and DTW alignment scores as supporting evidence in your taxonomy assessment process.
How is this different from MSCI Climate or Sustainalytics?
Commercial vendors like MSCI Climate, Sustainalytics, and S&P Trucost offer audited, certified climate data with analyst review. This MCP server provides open-methodology quantitative tools that run the same category of algorithms (Monte Carlo VaR, physical risk overlay, emissions alignment) but with transparent, inspectable code, on-demand pricing starting at $0.050 per call, and the flexibility to use your own input data. It is not a substitute for certified climate data in regulated disclosures but is well-suited for internal risk screening, research, and scenario analysis.
Can I run automated daily climate monitoring with this server?
Yes. The server runs in Apify Standby mode, so it is always on and ready to accept tool calls without cold starts. You can schedule tool calls via the Apify scheduler, a webhook trigger, or a cron job calling the MCP endpoint directly. Daily monitoring across an 8-tool full assessment costs approximately $0.50–$0.75 per day.
How long does a full TCFD report take to generate?
The generate_tcfd_report tool runs all six algorithms and fetches data from FRED, OpenAQ, IUCN, and GBIF in parallel. For a 10-asset portfolio with 3 facilities, expect 60–120 seconds. For larger portfolios or slower network conditions, allow up to 180 seconds. Carbon exposure analysis for a single asset typically returns in under 15 seconds.
Is it legal to use SEC EDGAR, IUCN, and GBIF data for commercial analysis?
Yes. SEC EDGAR is a public US government database with no restrictions on commercial use. IUCN Red List data is available under a Creative Commons license for research and educational purposes. GBIF occurrence data is published under CC BY 4.0. UN COMTRADE, FRED, World Bank, and Eurostat data are all free for commercial use. Always verify current terms on each source before using data in published reports.
Can I use this server with Claude Desktop or Cursor?
Yes. The server is fully compatible with any MCP client that supports the Streamable HTTP transport, including Claude Desktop, Cursor, Zed, and custom clients built with the MCP SDK. Add the endpoint https://climate-financial-stranded-asset-mcp.apify.actor/mcp with your Apify token as a Bearer Authorization header.
What happens if an upstream data source is unavailable?
The runActor client wraps each underlying actor call in a try/catch and returns an empty array on failure. The scoring algorithms are designed to degrade gracefully — for example, if IUCN Red List data is unavailable, biodiversity risk falls back to default degradation rates. Results will still be returned but may reflect less precise calibration. The tool response does not include an explicit data-quality warning in the current version.
How do I get the sector benchmark carbon intensities used in the analysis?
The 14-sector benchmarks (energy: 850, oil_gas: 950, utilities: 720, mining: 600, chemicals: 380, transportation: 310, agriculture: 290, materials: 480, industrials: 220, real estate: 95, consumer staples: 120, healthcare: 45, technology: 30, communication services: 20 tCO2e/$M revenue) are hardcoded in the scoring engine and sourced from IEA and MSCI sector carbon intensity reference data. They are visible in the open-source code and can be used as input benchmarks for your own carbon intensity estimates.
Can I run the IPCC 1.5C and IEA Net Zero alignments together for comparison?
Yes. Call score_transition_alignment twice with the same entity list — once with referencePathway: "IEA_NZ" and once with "IPCC_15C" — and compare the resulting alignment scores and gap years. The IPCC 1.5C pathway is steeper, so most high-carbon entities will score lower against it, giving you a range of alignment outcomes under different policy assumptions.
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 solutions, additional sector benchmarks, or enterprise integration support, 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 Climate Financial Stranded Asset MCP Server?
Start for free on Apify. No credit card required.
Open on Apify Store