Carbonara freight CO2e
Server Details
Freight CO2e by road, rail, sea, inland waterway and air (GLEC, ISO 14083), every step shown
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 6 tools
Each tool has a distinct role: calculate_shipment (single), calculate_shipments (batch), and emissions_report (aggregated ISO 14083 report) are separated by scope and output, while find_places, get_methodology, and list_vehicle_types are clearly reference lookups. The only mild overlap is calculate_shipments vs emissions_report, both handling multiple shipments, but descriptions distinguish batch calculation from report generation.
Most names follow a verb_noun pattern (calculate_shipment, calculate_shipments, find_places, get_methodology, list_vehicle_types). The lone outlier is emissions_report, which is noun-only and lacks a verb, a minor deviation in an otherwise consistent scheme.
Six tools is well-scoped for a freight emissions calculator: three computational tools plus three supporting reference tools. Each tool earns its place with no redundant surface.
The surface covers the full workflow: location resolution, vehicle/emission-factor lookup, single and batch calculation, methodology documentation, and a compliant reporting tool. Coverage is strong; only minor conveniences (e.g. a standalone emission-factor dataset listing) are absent, but these are subsumed by existing tools.
Available Tools
6 toolscalculate_shipmentCalculate a shipment's emissionsARead-onlyIdempotentInspect
Calculates one shipment's greenhouse gas emissions (kg CO2e: well-to-wheel, tank-to-wheel, well-to-tank) following the GLEC Framework v3.2 and ISO 14083. Routes each leg's distance from its coordinates or codes. Returns the result per leg (distance and how it was found, method, data type, emission factor and its source, distance adjustment, notes on legs Carbonara added) and a step-by-step calculation sheet with the arithmetic and the GLEC page and ISO 14083 clause behind each step.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Your reference for the shipment | |
| teu | No | Containers in TEU, instead of weight_kg; needs teu_net_tonnes | |
| hubs | No | Hub stops (transhipment, storage); needs a dataset with hub factors. | |
| legs | Yes | The legs in order, from where the shipper hands the goods over to where the consignee receives them. | |
| weight_kg | No | Cargo weight in kg (or give teu instead) | |
| add_road_legs | No | Add road legs where the legs don't join up (gaps over 5 km), and to a port or terminal when a sea, rail or river leg starts or ends off its network (default true). Added legs are marked in the result. | |
| container_load | No | With teu: a container load profile defined by the dataset, instead of teu_net_tonnes | |
| teu_net_tonnes | No | With teu: net cargo tonnes per TEU (container tare is not added) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/openWorld=false, so the safety profile is covered; the description adds real behavior beyond that, disclosing that it routes each leg from coordinates or codes, that it may add legs ('legs Carbonara added'), and what the per-leg and step-by-step output contains. No contradiction with the read-only annotation since adding legs is internal to the calculation, not a persisted mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the purpose and standard, then routing behavior, then return shape. The return-value sentence is long but earns its place because there is no output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly spells out what is returned (per-leg distance, method, data type, emission factor and source, DAF, added legs, and a step-by-step calculation sheet). It covers standards, routing and output adequately; only the when-to-use guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented in the schema and the description need not carry that load. The description adds only a light touch ('Routes each leg's distance from its coordinates or codes'), so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculates one shipment's greenhouse gas emissions') and pins the scope with 'one shipment', implicitly separating it from the plural sibling calculate_shipments. It also names the standards (GLEC v3.2, ISO 14083), so the agent knows exactly what computation this is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool computes but never states when to choose it over calculate_shipments, get_methodology or emissions_report, and offers no exclusions or prerequisites. Usage is only implied by the singular scope and the emission-calculation purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_shipmentsCalculate many shipmentsARead-onlyIdempotentInspect
Calculates several shipments at once, each like calculate_shipment. A failing shipment doesn't stop the others; each failure says why and whether sending it again can help. Set explain to add calculation sheets (first 25 shipments).
| Name | Required | Description | Default |
|---|---|---|---|
| explain | No | Add the step-by-step calculation sheet of each shipment (up to 25) | |
| shipments | Yes | The shipments. Without an API key the public service takes up to 100 per call; with one, up to 10,000. | |
| add_road_legs | No | Add road legs where the legs don't join up (gaps over 5 km), and to a port or terminal when a sea, rail or river leg starts or ends off its network (default true). Added legs are marked in the result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world semantics, but the description adds important non-annotation behavior: one failing shipment does not stop others, and each failure states a reason plus whether resubmission can help. It also scopes explain to the first 25 shipments. It does not mention the API-key-dependent call limits, though those are covered in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose, then failure behavior, then the explain option. Every sentence contributes information and nothing is repeated or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers batch execution, failure isolation, retry guidance, and the explain limit, while the schema supplies full nested parameter documentation and call limits and annotations cover safety. The only gap is that the success/response shape is not described at all, though no output schema exists to rely on either.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already carries all parameter semantics and the baseline is 3. The description's only additional parameter-adjacent detail is that explain adds calculation sheets for the first 25 shipments, which largely restates the schema's 'up to 25' note. It adds no extra syntax or constraints for the shipments array.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculates several shipments at once'), and explicitly anchors the per-shipment behavior to the sibling calculate_shipment, so the batch-vs-single distinction is clear without opening either schema. The mention of explain further grounds the tool's scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'several shipments at once' and the reference to calculate_shipment make the batch use case clear relative to the single-shipment sibling. It also explains when to set explain. However, it never states a when-not condition or explicitly says to use calculate_shipment for a single shipment.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
emissions_reportEmissions report over many shipmentsARead-onlyIdempotentInspect
Calculates shipments and returns a report with the basic content ISO 14083 asks for at the level of transport services (GLEC v3.2 Section 2 Ch.1): coverage and failures, totals split into TTW and WTT, intensity, per mode and hub type, energy carriers, data quality (primary/modelled/default shares, sources, models), distance adjustments, and notes. Returned as Markdown and as structured data.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Report title | |
| period_to | No | End of the period covered, YYYY-MM-DD | |
| reference | No | Where supporting information can be found | |
| shipments | Yes | The shipments. Without an API key the public service takes up to 100 per call; with one, up to 10,000. | |
| declare_iso | No | Add the ISO 14083:2023 conformity statement. Only when the user explicitly confirms that their data collection and boundaries conform. | |
| period_from | No | Start of the period covered, YYYY-MM-DD | |
| organisation | No | Organisation the report is for | |
| add_road_legs | No | Add road legs where the legs don't join up (gaps over 5 km), and to a port or terminal when a sea, rail or river leg starts or ends off its network (default true). Added legs are marked in the result. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), so the description's job is to add context, and it does: it enumerates the report's contents (coverage/failures, TTW vs WTT totals, intensity, data quality shares, DAF adjustments) and states the dual Markdown + structured return. It does not mention the 100/10,000 shipment limits or key requirements, but the schema carries those.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the verb and the report's scope, then a compact closing sentence on return format. The middle enumeration is long but each item is a real report section, so it earns its place rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description must convey return values, and it does by listing the report sections and the two output formats. The remaining gap is operational context (limits, credentials) which is deferred to the schema rather than the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters including nested shipment/leg structure, and the description adds no parameter-level detail. Baseline 3 applies when structured fields do the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculates shipments and returns a report') and the title pins the scope to many shipments, so it is distinguishable from the singular calculate_shipment sibling. It stops short of explicitly naming which sibling to prefer, but the aggregate-report framing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus calculate_shipment or calculate_shipments, and no exclusions or prerequisites (e.g. API key, dataset requirements) are surfaced in the description. Usage is only weakly implied by the word 'report'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_placesFind placesARead-onlyIdempotentInspect
Finds cities, sea and inland ports, rail and road terminals, inland depots, border crossings and airports by name, UN/LOCODE or IATA code, with coordinates, from an embedded list (GeoNames, UN/LOCODE, OurAirports). Use it to fill a leg's from and to.
| Name | Required | Description | Default |
|---|---|---|---|
| kinds | No | Only places of these kinds: port (sea or inland port), rail and road (terminals), airport, inland (inland clearance depot), border (crossing), city. E.g. ["port"] for a sea or river leg, ["airport"] for an air leg | |
| limit | No | Most results (default 10) | |
| query | Yes | Place name, UN/LOCODE (NLRTM) or IATA code (CPH) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description meaningfully reinforces the closed-world hint by naming the embedded data sources (GeoNames, UN/LOCODE, OurAirports), which explains why results are limited to a fixed catalog. It stops short of describing result ordering or how 'limit' interacts with matching, but adds real context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence leads with the action and resource set, then the lookup keys, then the intended use case. Every clause earns its place and nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does note that results carry coordinates, and it explains the identifier formats and result kinds an agent will encounter. Missing only minor operational detail (result ordering, how the limit is applied), which is a small gap for a straightforward search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already documented in the schema, including the kinds enum values and the identifier formats. The description repeats the identifier formats (UN/LOCODE, IATA) without adding new semantics such as matching rules, partial-name behavior, or default kind filtering, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Finds) and enumerates the exact resources covered: cities, sea/inland ports, rail and road terminals, inland depots, border crossings, airports. It also states the lookup keys (name, UN/LOCODE, IATA) and the data provenance, which cleanly separates it from the calculation-oriented siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit usage context: "Use it to fill a leg's from and to," which tells the agent exactly when to reach for this tool. There are no overlapping siblings to disambiguate against, so no exclusions are needed, though a note about resolving unknown place names before calculating would make it complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_methodologyHow Carbonara calculatesARead-onlyIdempotentInspect
Explains the whole method: scope (WTW, TTW, WTT), inputs, the four calculation methods with formulas, how distances are routed, distance adjustment factors, added road legs, the emission factor datasets and their sources and limitations, data quality, what every result field means, errors, and how to present results.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety and determinism are covered. The description adds genuine value by disclosing the full topic inventory the agent will receive, which is the key behavioral fact for a documentation tool with no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the core purpose followed by a scannable enumeration of covered topics. The enumeration is long but every item is a distinct section the agent may need, so it earns its space; slightly denser than ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters, no output schema and rich annotations, the description's topic inventory is exactly the missing piece — it tells the agent what content is retrievable, including formulas, datasets, field meanings and presentation guidance. Nothing needed to call it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies. The description correctly does not waste words on inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Explains the whole method') and then enumerates the exact subject matter covered, making it unmistakably a reference/documentation tool rather than a computation. It does not explicitly name a sibling, but the contrast with calculate_shipment and emissions_report is obvious from the content list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to call this versus the calculation tools (e.g. 'consult before interpreting results' or 'call this if you need formula details'). Usage is only implied by the fact that it describes methodology. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_vehicle_typesList vehicle types and emission factorsARead-onlyIdempotentInspect
Lists the vehicle types (and their short aliases) with their emission factors: g CO2e per tonne-km tank-to-wheel and well-to-tank, the distance type they are per, source and year, and for trucks the load model's payload (what load_factor 1 means). Optionally the fuels for the fuel method.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| search | No | Only vehicle types whose id, alias or source contains this, e.g. "container" or "refrigerated" | |
| include_fuels | No | Also list fuels and their factors |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds useful interpretive context (what load_factor 1 means, that aliases are returned), but says nothing about result ordering, size limits, or whether the list is exhaustive/static — modest added value over the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence whose colon-delimited list is dense but every clause earns its place, since there is no output schema to carry the return-value detail. Slightly overpacked, but no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining what comes back, and it does so credibly for a lookup tool (factors, units, distance basis, source/year, aliases, payload semantics). The main omission is any hint about result size, ordering, or how modes partition the list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: search and include_fuels carry their own descriptions, while the mode enum has none. The description partially compensates — it clarifies that fuels relate to the fuel method (extending include_fuels' 'Also list fuels and their factors') — but never mentions mode or what filtering by road/rail/sea/air/inland_waterway does. Baseline 3 is fair.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Lists the vehicle types') and then enumerates the exact payload — emission factors in g CO2e per tonne-km, tank-to-wheel and well-to-tank, distance basis, source, year, and truck load model. That level of specificity makes it unmistakably a reference/lookup tool, distinct from the sibling calculate_* tools and emissions_report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the reader infers this is the tool to call before/alongside a calculation to learn which vehicle types and factors exist. The single hint about usage is 'Optionally the fuels for the fuel method,' which gestures at when to set include_fuels but never states when this tool should be preferred over siblings or what preconditions apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
6 tool updates
- First observed
calculate_shipment - First observed
calculate_shipments - First observed
emissions_report - First observed
find_places - First observed
get_methodology - First observed
list_vehicle_types
Related MCP Connectors
Verified CO2e for any transaction, activity, flight, shipment or CBAM import. 200+ countries.
Climatiq MCP — carbon footprint calculator with emission factors
Ocean & multimodal freight intelligence: rates, landed cost, transit, customs, risk, ship decisions
Neutral freight reference + validation layer for AI agents: ADR, HS, UN/LOCODE, freight math
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables users to compare and select multi-carrier freight routes by applying GLEC emissions factors across air, rail, maritime, and electric ground modes while weighing transit time and landed cost. It also calculates the resulting CO2 footprint and generates verified carbon offset credit allocation certificates for the chosen route.7-
- FlicenseNot gradedqualityBmaintenanceEnables users to compare air, rail, maritime, and electric ground freight options using GLEC emissions factors, optimize multi-carrier routes, and compute carbon footprints with offset costs. It also generates verified carbon offset credit allocation certificates.7-
- AlicenseAqualityDmaintenanceOcean and multimodal freight intelligence suite providing cross-validated rates, total landed cost, transit reliability, customs, risk, emissions, and unified ship decisions through 47 tools.4713 npmMIT
- AlicenseAqualityAmaintenanceSourced carbon emission factors + audit-traced calculations an AI can cite.1245 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.