Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Climate Financial Stranded Asset

FreeNot checked

Climate financial stranded asset analysis for AI agents — this MCP server gives any LLM client direct access to eight quantitative climate risk tools covering c

GitHubEmbed

About

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.

README

View on ApifyForge | Use on Apify Store


Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf):

{
  "mcpServers": {
    "climate-financial-stranded-asset-mcp": {
      "url": "https://ryanclinton--climate-financial-stranded-asset-mcp.apify.actor/mcp"
    }
  }
}

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 /mcp endpoint, 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

  1. Connect to your AI client — add the MCP server URL https://climate-financial-stranded-asset-mcp.apify.actor/mcp to Claude Desktop, Cursor, or any MCP-compatible client using the JSON config below. No code is required.
  2. 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.
  3. 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.
  4. 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, and communication_services; unrecognized sectors fall back to the default benchmark (150 tCO2e/$M revenue)
  • For TCFD reports, use generate_tcfd_report as 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

  1. Include fossil revenue share for every assetfossilRevenueShare is 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.

  2. Run stranding and VaR in the same session — the tools share AssetPosition schema; passing the same asset array to both compute_stranding_probability and simulate_climate_var gives you complementary views (probability vs. dollar loss) without duplicating data entry.

  3. Use generate_tcfd_report for 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.

  4. Increase numPaths for 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.

  5. 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.

  6. 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.

  7. 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.

  8. 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_report output 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 fossilRevenueShare is greater than 0 for fossil-exposed assets. If fossilRevenueShare is 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 carbonIntensity is 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. If emissionsHistory is 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:

  1. Go to Account Settings > Privacy
  2. 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.

from github.com/apifyforge/climate-financial-stranded-asset-mcp

Installing Climate Financial Stranded Asset

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/apifyforge/climate-financial-stranded-asset-mcp

FAQ

Is Climate Financial Stranded Asset MCP free?

Yes, Climate Financial Stranded Asset MCP is free — one-click install via Unyly at no cost.

Does Climate Financial Stranded Asset need an API key?

No, Climate Financial Stranded Asset runs without API keys or environment variables.

Is Climate Financial Stranded Asset hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Climate Financial Stranded Asset in Claude Desktop, Claude Code or Cursor?

Open Climate Financial Stranded Asset on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Climate Financial Stranded Asset with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs