Verified CO2e for any transaction, activity, flight, shipment or CBAM import. 200+ countries.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
MyCO2 Suite API key. Get 1,000 free calls/month at https://myco2suite.io. (No-signup pay-per-call via x402/USDC is available on the REST endpoints.)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Array of up to 100 shipments
Default compliance year applied to shipments without their own
Override the live EU ETS price for the whole batch
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| year | number | Default compliance year applied to shipments without their own |
| shipments* | array | Array of up to 100 shipments |
| ets_price_eur_per_tonne | number | Override the live EU ETS price for the whole batch |
{
"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 − 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 (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.
| Argument | Type | Description |
|---|---|---|
| year | number | CBAM compliance year (2026-2050). Determines phase-in rate and mark-up tier. |
| cn_code* | string | 8-digit EU Combined Nomenclature code, e.g. '25231000' for cement clinkers |
| project | boolean | If true, includes a multi-year liability projection through 2034. |
| weight_tonnes* | number | Weight of the shipment in metric tonnes |
| origin_country* | string | ISO 3166-1 alpha-2 code of the manufacturing country, e.g. 'CN' for China |
| ets_price_eur_per_tonne |
Calculate CO2e emissions for an activity (electricity, fuel combustion, materials, transport, etc.)
| Argument | Type | Description |
|---|---|---|
| year | number | Reporting year |
| country | string | ISO 3166-1 alpha-2 country code |
| quantity* | number | Activity quantity (positive, max 1,000,000) |
| activity_type* | string | Activity type slug (e.g. electricity_generated_kwh, natural_gas_kwh) |
{
"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 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.
| Argument | Type | Description |
|---|---|---|
| calculations* | array | Array of up to 100 activity calculations |
{
"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 CO2e emissions for a flight
| Argument | Type | Description |
|---|---|---|
| origin* | string | Origin IATA code (e.g. LHR) or latitude,longitude |
| passengers | number | Number of passengers (default: 1) |
| cabin_class | string | economy | premium_economy | business | first |
| destination* | string | Destination IATA code or UN/LOCODE |
{
"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 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.
| Argument | Type | Description |
|---|---|---|
| legs | array | Multi-leg/intermodal: array of up to 10 legs. When provided, top-level origin/destination/mode are ignored. |
| mode | string | Transport mode — required for single-leg |
| origin | string | Origin: UN/LOCODE (e.g. 'GBSOU'), IATA code (e.g. 'LHR'), or free-text name (e.g. 'Rotterdam') |
| weight_kg* | number | Cargo weight in kilograms |
| origin_lat | number | Origin latitude — alternative to origin string |
| origin_lon | number | Origin longitude — alternative to origin string |
| destination | string | Destination: UN/LOCODE, IATA code, or free-text name |
| vehicle_type | string | Vehicle type: sea: container|bulk|general|roro|vehicle_carrier|refrigerated|ropax|crude_tanker|product_tanker|chemical_tanker|lng_tanker|lpg_tanker — road: van — rail: freight_train — air: international|long_haul|short_haul|domestic |
Calculate CO2e emissions for a business transaction (spend-based)
| Argument | Type | Description |
|---|---|---|
| mcc* | string | 4-digit MCC code (e.g. 5812 for restaurants) |
| sic | string | SIC code (2-5 digits) |
| isic | string | ISIC code (4 digits) |
| nace | string | NACE code (e.g. 56.10) |
| year | number | Reporting year (e.g. 2024) |
| naics | string | NAICS code (6 digits) |
| country* | string | ISO 3166-1 alpha-2 country code (e.g. GB, US) |
| bea_code | string | BEA sector code (5-7 alphanumeric) |
| currency* | string | ISO 4217 currency code (e.g. GBP, USD, EUR) |
| spend_amount* | number | Transaction spend amount |
List available activity types for emission calculations, optionally filtered by country or category
| Argument | Type | Description |
|---|---|---|
| country | string | Filter by ISO country code (e.g. GB, DE, SG) |
| category | string | Filter by category (e.g. energy, transport, materials, fuel_combustion) |
{
"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
}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).
| Argument | Type | Description |
|---|---|---|
| type | string | Filter by instrument: 'ets' or 'carbon tax' |
| status | string | Default 'implemented'; pass 'all' to include abolished schemes |
| country | string | ISO 3166-1 alpha-2 country code (or 'EU'), e.g. 'CN', 'KR', 'GB' |
{
"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
}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.
| Argument | Type | Description |
|---|---|---|
| q | string | Search by code prefix or description, e.g. 'steel', 'cement', '7206' |
| limit | number | Max results (default 100, max 1000) |
| sector | string | Filter: cement | aluminium | iron_steel | fertilisers | hydrogen |
| cbam_only | boolean | Default true (CBAM Phase 1 codes only). Pass false to search all 9,812 CN 2026 codes. |
{
"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
}Look up emission factors by classification code (MCC, NAICS, ISIC, SIC, NACE, BEA) or activity type
| Argument | Type | Description |
|---|---|---|
| mcc | string | 4-digit MCC code |
| sic | string | SIC code (2-5 digits) |
| isic | string | ISIC code (4 digits) |
| nace | string | NACE code |
| naics | string | NAICS code (6 digits) |
| country* | string | ISO 3166-1 alpha-2 country code |
| bea_code | string | BEA code |
| currency | string | Currency for spend-based lookup |
| activity_type | string | Activity type slug |
| activity_unit | string | Activity unit |
| activity_quantity | number | Activity quantity |
| number |
| Override the live EU ETS carbon price (EUR/tonne CO2e). |
| actual_emissions_tco2e_per_t | number | 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 | number | Carbon price already paid in the country of origin (EUR/tonne CO2e). Applies the Article 9 deduction. |
| carbon_price_rebate_eur_per_tonne | number | Rebate/compensation on the origin carbon price (EUR/tonne). Art. 9 requires the claim be net of rebates; deduction uses paid − rebate. |
{
"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 − rebate."
}
},
"additionalProperties": false
}| destination_lat | number | Destination latitude |
| destination_lon | number | Destination longitude |
{
"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 — 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 — alternative to origin string"
},
"origin_lon": {
"type": "number",
"description": "Origin longitude — 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 — road: van — rail: freight_train — air: international|long_haul|short_haul|domestic"
},
"destination_lat": {
"type": "number",
"description": "Destination latitude"
},
"destination_lon": {
"type": "number",
"description": "Destination longitude"
}
},
"additionalProperties": false
}| display_currency | string | Output currency for display |
{
"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
}{
"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
}