MCP Server

carbon-intelligence

io.myco2suite/carbon-intelligence
Data & Analytics Science & Engineering Public & reachable MCP 2025-11-25

What this MCP does

Calculates CO2e emissions for activities, flights, freight, and transactions, and estimates CBAM emissions, certificates, liabilities, prices, and product-code coverage.

calculate_cbam_batch
Calculate CBAM liability for up to 100 shipments in one request and return a portfolio-level summary (total embedded tCO2e, total certificates, total EUR liability). Ideal for pricing a whole shipment manifest or product catalogue. Per-item ok/not_covered/error — one bad item doesn't fail the batch. Each shipment supports actual_emissions_tco2e_per_t and carbon_price_paid_eur_per_tonne.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['shipments'], 'properties': {'year': {'type': 'number', 'description': 'Default compliance year applied to shipments without their own'}, 'shipments': {'type': 'array', 'items': {'type': 'object', 'required': ['cn_code', 'origin_country', 'weight_tonnes'], 'properties': {'id': {'type': 'string', 'description': 'Optional caller-assigned ID echoed back in results'}, 'year': {'type': 'number', 'description': 'CBAM compliance year'}, 'cn_code': {'type': 'string', 'description': '8-digit CN code'}, 'weight_tonnes': {'type': 'number', 'description': 'Weight in metric tonnes'}, 'origin_country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code'}, 'actual_emissions_tco2e_per_t': {'type': 'number', 'description': 'Verified actual emission intensity (tCO2e/t)'}, 'carbon_price_paid_eur_per_tonne': {'type': 'number', 'description': 'Carbon price paid at origin (EUR/t) for Art. 9 deduction'}, 'carbon_price_rebate_eur_per_tonne': {'type': 'number', 'description': 'Rebate on the origin carbon price (EUR/t); deduction uses paid â\x88\x92 rebate'}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Array of up to 100 shipments'}, 'ets_price_eur_per_tonne': {'type': 'number', 'description': 'Override the live EU ETS price for the whole batch'}}, 'additionalProperties': False}
calculate_cbam_liability
Calculate CBAM (Carbon Border Adjustment Mechanism) embedded emissions and estimated EUR liability for an imported good. Covers Phase 1 sectors: cement, aluminium, iron & steel, fertilisers, hydrogen. Applies the year's phase-in rate (2.5% in 2026, ramping to 100% by 2032) and uses the live EU ETS price. The response gives TWO scenarios under cbam_obligation: 'without_own_mrv' (EU default values incl. a punitive mark-up — for exporters who have not verified their own emissions) and 'with_own_mrv' (verified actual emissions, no mark-up). Pass actual_emissions_tco2e_per_t (verified MRV figure) to populate the with_own_mrv scenario and the saving vs defaults; pass carbon_price_paid_eur_per_tonne to apply the Article 9 deduction (both scenarios) for carbon already priced at origin; pass project=true for a year-by-year forecast of both scenarios through 2034.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['cn_code', 'origin_country', 'weight_tonnes'], 'properties': {'year': {'type': 'number', 'description': 'CBAM compliance year (2026-2050). Determines phase-in rate and mark-up tier.'}, 'cn_code': {'type': 'string', 'description': "8-digit EU Combined Nomenclature code, e.g. '25231000' for cement clinkers"}, 'project': {'type': 'boolean', 'description': 'If true, includes a multi-year liability projection through 2034.'}, 'weight_tonnes': {'type': 'number', 'description': 'Weight of the shipment in metric tonnes'}, 'origin_country': {'type': 'string', 'description': "ISO 3166-1 alpha-2 code of the manufacturing country, e.g. 'CN' for China"}, 'ets_price_eur_per_tonne': {'type': 'number', 'description': 'Override the live EU ETS carbon price (EUR/tonne CO2e).'}, 'actual_emissions_tco2e_per_t': {'type': 'number', 'description': 'Verified actual emission intensity (tCO2e per tonne). If provided, returns an optimization block comparing it against EU default values.'}, 'carbon_price_paid_eur_per_tonne': {'type': 'number', 'description': 'Carbon price already paid in the country of origin (EUR/tonne CO2e). Applies the Article 9 deduction.'}, 'carbon_price_rebate_eur_per_tonne': {'type': 'number', 'description': 'Rebate/compensation on the origin carbon price (EUR/tonne). Art. 9 requires the claim be net of rebates; deduction uses paid â\x88\x92 rebate.'}}, 'additionalProperties': False}
calculate_emissions_activity
Calculate CO2e emissions for an activity (electricity, fuel combustion, materials, transport, etc.)
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['activity_type', 'quantity'], 'properties': {'year': {'type': 'number', 'description': 'Reporting year'}, 'country': {'type': 'string', 'default': 'GB', 'description': 'ISO 3166-1 alpha-2 country code'}, 'quantity': {'type': 'number', 'description': 'Activity quantity (positive, max 1,000,000)'}, 'activity_type': {'type': 'string', 'description': 'Activity type slug (e.g. electricity_generated_kwh, natural_gas_kwh)'}}, 'additionalProperties': False}
calculate_emissions_activity_batch
Calculate CO2e emissions for up to 100 activities in a single request. Each item is resolved in parallel. Items that fail validation or are not found return per-item errors without failing the whole batch.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['calculations'], 'properties': {'calculations': {'type': 'array', 'items': {'type': 'object', 'required': ['activity_type', 'quantity'], 'properties': {'id': {'type': 'string', 'description': 'Optional caller-assigned ID echoed back in results'}, 'year': {'type': 'number', 'description': 'Reporting year'}, 'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code (default: GLO)'}, 'quantity': {'type': 'number', 'description': 'Activity quantity (positive, max 1,000,000)'}, 'activity_type': {'type': 'string', 'description': 'Activity type slug'}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Array of up to 100 activity calculations'}}, 'additionalProperties': False}
calculate_emissions_flight
Calculate CO2e emissions for a flight
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['origin', 'destination'], 'properties': {'origin': {'type': 'string', 'description': 'Origin IATA code (e.g. LHR) or latitude,longitude'}, 'passengers': {'type': 'number', 'default': 1, 'description': 'Number of passengers (default: 1)'}, 'cabin_class': {'type': 'string', 'description': 'economy | premium_economy | business | first'}, 'destination': {'type': 'string', 'description': 'Destination IATA code or UN/LOCODE'}}, 'additionalProperties': False}
calculate_emissions_freight
Calculate CO2e emissions for freight transport (sea, road, rail, or air cargo). Supports single-leg and multi-leg intermodal journeys. Locations accept UN/LOCODE (e.g. 'GBSOU'), IATA airport code (e.g. 'LHR'), free-text name (e.g. 'Southampton'), or lat/lon coordinates. For multi-leg journeys provide a legs[] array — weight_kg is shared across all legs.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['weight_kg'], 'properties': {'legs': {'type': 'array', 'items': {'type': 'object', 'required': ['mode'], 'properties': {'mode': {'enum': ['sea', 'road', 'rail', 'air'], 'type': 'string', 'description': 'Transport mode for this leg'}, 'origin': {'type': 'string', 'description': 'Leg origin: LOCODE, IATA, or free-text'}, 'origin_lat': {'type': 'number'}, 'origin_lon': {'type': 'number'}, 'destination': {'type': 'string', 'description': 'Leg destination: LOCODE, IATA, or free-text'}, 'vehicle_type': {'type': 'string', 'description': 'Vehicle type for this leg'}, 'destination_lat': {'type': 'number'}, 'destination_lon': {'type': 'number'}}, 'additionalProperties': False}, 'description': 'Multi-leg/intermodal: array of up to 10 legs. When provided, top-level origin/destination/mode are ignored.'}, 'mode': {'enum': ['sea', 'road', 'rail', 'air'], 'type': 'string', 'description': 'Transport mode â\x80\x94 required for single-leg'}, 'origin': {'type': 'string', 'description': "Origin: UN/LOCODE (e.g. 'GBSOU'), IATA code (e.g. 'LHR'), or free-text name (e.g. 'Rotterdam')"}, 'weight_kg': {'type': 'number', 'description': 'Cargo weight in kilograms'}, 'origin_lat': {'type': 'number', 'description': 'Origin latitude â\x80\x94 alternative to origin string'}, 'origin_lon': {'type': 'number', 'description': 'Origin longitude â\x80\x94 alternative to origin string'}, 'destination': {'type': 'string', 'description': 'Destination: UN/LOCODE, IATA code, or free-text name'}, 'vehicle_type': {'type': 'string', 'description': 'Vehicle type: sea: container|bulk|general|roro|vehicle_carrier|refrigerated|ropax|crude_tanker|product_tanker|chemical_tanker|lng_tanker|lpg_tanker â\x80\x94 road: van â\x80\x94 rail: freight_train â\x80\x94 air: international|long_haul|short_haul|domestic'}, 'destination_lat': {'type': 'number', 'description': 'Destination latitude'}, 'destination_lon': {'type': 'number', 'description': 'Destination longitude'}}, 'additionalProperties': False}
calculate_emissions_transaction
Calculate CO2e emissions for a business transaction (spend-based)
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['mcc', 'spend_amount', 'currency', 'country'], 'properties': {'mcc': {'type': 'string', 'description': '4-digit MCC code (e.g. 5812 for restaurants)'}, 'sic': {'type': 'string', 'description': 'SIC code (2-5 digits)'}, 'isic': {'type': 'string', 'description': 'ISIC code (4 digits)'}, 'nace': {'type': 'string', 'description': 'NACE code (e.g. 56.10)'}, 'year': {'type': 'number', 'description': 'Reporting year (e.g. 2024)'}, 'naics': {'type': 'string', 'description': 'NAICS code (6 digits)'}, 'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code (e.g. GB, US)'}, 'bea_code': {'type': 'string', 'description': 'BEA sector code (5-7 alphanumeric)'}, 'currency': {'type': 'string', 'description': 'ISO 4217 currency code (e.g. GBP, USD, EUR)'}, 'spend_amount': {'type': 'number', 'description': 'Transaction spend amount'}, 'display_currency': {'type': 'string', 'description': 'Output currency for display'}}, 'additionalProperties': False}
list_activity_types
List available activity types for emission calculations, optionally filtered by country or category
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'country': {'type': 'string', 'description': 'Filter by ISO country code (e.g. GB, DE, SG)'}, 'category': {'type': 'string', 'description': 'Filter by category (e.g. energy, transport, materials, fuel_combustion)'}}, 'additionalProperties': False}
lookup_cbam_carbon_prices
Look up the carbon price(s) in a country (World Bank Carbon Pricing Dashboard) as an INDICATIVE starting figure for the carbon_price_paid_eur_per_tonne input on calculate_cbam_liability. Returns instrument name, type (ETS/carbon tax), price in USD and indicative EUR, and year. Not the claimable Article 9 value — the importer must report the price actually paid on their goods with proof. A country with no result has no implemented carbon price (a common reason it is CBAM-exposed).
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'type': {'type': 'string', 'description': "Filter by instrument: 'ets' or 'carbon tax'"}, 'status': {'type': 'string', 'description': "Default 'implemented'; pass 'all' to include abolished schemes"}, 'country': {'type': 'string', 'description': "ISO 3166-1 alpha-2 country code (or 'EU'), e.g. 'CN', 'KR', 'GB'"}}, 'additionalProperties': False}
lookup_cbam_cn_codes
Look up / search EU Combined Nomenclature (CN) codes for CBAM. Find the 8-digit code for a product, check whether it is currently subject to CBAM (cbam_phase1=true) and which sector, then pass the cn_code to calculate_cbam_liability.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'q': {'type': 'string', 'description': "Search by code prefix or description, e.g. 'steel', 'cement', '7206'"}, 'limit': {'type': 'number', 'description': 'Max results (default 100, max 1000)'}, 'sector': {'type': 'string', 'description': 'Filter: cement | aluminium | iron_steel | fertilisers | hydrogen'}, 'cbam_only': {'type': 'boolean', 'description': 'Default true (CBAM Phase 1 codes only). Pass false to search all 9,812 CN 2026 codes.'}}, 'additionalProperties': False}
lookup_emission_factors
Look up emission factors by classification code (MCC, NAICS, ISIC, SIC, NACE, BEA) or activity type
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['country'], 'properties': {'mcc': {'type': 'string', 'description': '4-digit MCC code'}, 'sic': {'type': 'string', 'description': 'SIC code (2-5 digits)'}, 'isic': {'type': 'string', 'description': 'ISIC code (4 digits)'}, 'nace': {'type': 'string', 'description': 'NACE code'}, 'naics': {'type': 'string', 'description': 'NAICS code (6 digits)'}, 'country': {'type': 'string', 'description': 'ISO 3166-1 alpha-2 country code'}, 'bea_code': {'type': 'string', 'description': 'BEA code'}, 'currency': {'type': 'string', 'description': 'Currency for spend-based lookup'}, 'activity_type': {'type': 'string', 'description': 'Activity type slug'}, 'activity_unit': {'type': 'string', 'description': 'Activity unit'}, 'activity_quantity': {'type': 'number', 'description': 'Activity quantity'}}, 'additionalProperties': False}
Added
list_activity_types
Sept. 17, 2026, 12:53 p.m.
Added
lookup_emission_factors
Sept. 17, 2026, 12:53 p.m.
Added
lookup_cbam_carbon_prices
Sept. 17, 2026, 12:53 p.m.
Added
lookup_cbam_cn_codes
Sept. 17, 2026, 12:53 p.m.
Added
calculate_cbam_batch
Sept. 17, 2026, 12:53 p.m.
Added
calculate_cbam_liability
Sept. 17, 2026, 12:53 p.m.
Added
calculate_emissions_activity_batch
Sept. 17, 2026, 12:53 p.m.
Added
calculate_emissions_activity
Sept. 17, 2026, 12:53 p.m.
Added
calculate_emissions_freight
Sept. 17, 2026, 12:53 p.m.
Added
calculate_emissions_flight
Sept. 17, 2026, 12:53 p.m.
Added
calculate_emissions_transaction
Sept. 17, 2026, 12:53 p.m.