Skip to content

MCP Tools Reference

VoLCA exposes 18 tools via MCP. All tools return JSON as a text content block.

ToolRequired parametersPurpose
list_databasesLCA / ACV — list all loaded LCA databases (Agribalyse, ecoinvent, …)
list_presetsLCA / ACV — list named classification filter presets configured in this instance
search_activitiesdatabase, nameLCA / ACV — search for activities (processes) by name, geography, product, classification, or preset
search_flowsdatabase, queryLCA / ACV — search for biosphere flows (emissions, resources) by name
get_activitydatabase, process_idLCA / ACV — get detailed information about an activity: name, location, exchanges, reference product, metadata
aggregatedatabase, process_id, scopeLCA / ACV — aggregate exchanges, supply chain entries, or biosphere flows with SQL group-by-style filters
get_supply_chaindatabase, process_idLCA / ACV — get a flat list of all upstream activities in the supply chain (chaîne amont, filière, intrants)
get_inventorydatabase, process_idLCA / ACV — compute the Life Cycle Inventory (LCI): biosphere flows (emissions and resource extractions) for an activity's full supply chain
get_impactsdatabase, process_id, method_idLCA / ACV — compute Life Cycle Impact Assessment (LCIA) scores for an activity
list_methodsLCA / ACV — list all loaded LCIA methods (impact assessment methods like climate change, acidification, eutrophication, land use, water scarcity)
get_flow_mappingdatabase, method_idLCA / ACV — get the mapping between a method's characterization factors and database flows, showing match coverage
get_characterizationdatabase, method_idLCA / ACV — look up characterization factors for a method matched against database flows
get_contributing_flowsdatabase, process_id, method_idLCA / ACV — identify which elementary flows (emissions/resources) contribute most to a specific impact category
get_contributing_activitiesdatabase, process_id, method_idLCA / ACV — identify which upstream activities contribute most to a specific impact category
list_geographiesdatabaseLCA / ACV — list all geography codes present in a database, with display names and parent regions
list_classificationsdatabaseLCA / ACV — list classification systems in a database
get_path_todatabase, process_id, targetLCA / ACV — find the shortest supply chain path from a process to the first upstream activity whose name matches a pattern
get_consumersdatabase, process_idLCA / ACV — find all activities that transitively consume (depend on) a given supplier

list_databases

LCA / ACV — list all loaded LCA databases (Agribalyse, ecoinvent, …). Call this first to discover which databases are available before searching.

list_presets

LCA / ACV — list named classification filter presets configured in this instance. Each preset bundles multiple (system, value, mode) classification filters under a human-readable label. Use the filter values from a preset as inputs to search_activities classification parameters.

search_activities

LCA / ACV — search for activities (processes) by name, geography, product, classification, or preset. Returns a paginated list of matching activities with their process IDs. Entry point for any LCA/ACV question about a specific product or process — food (yaourt, steak, pain, lait, fromage), packaging (PET, verre, carton), matériaux, énergie, transport. Accepts non-technical synonyms: empreinte carbone, empreinte environnementale, impact environnemental, occupation des sols, surface agricole, prairie, pâturage, intrants, filière, chaîne amont.

ParameterTypeRequiredDescription
classificationstringClassification system name to filter by (e.g. 'ISIC rev.4 ecoinvent', 'CPC'). Use list_classifications to see available systems.
classification_matchstringMatch mode: "equals" (case-insensitive equality) or "contains" (substring, default)
classification_valuestringValue within the classification system to match
databasestringDatabase name
exactbooleanIf true, name and geo must match exactly (case-insensitive equality) instead of substring search
geostringGeography/location filter (e.g. 'FR', 'DE', 'GLO')
limitintegerMax results (default 20)
namestringName substring to search for (or exact name if exact=true)
presetstringName of a classification preset (from list_presets) — expands to its bundled filters. Can be combined with explicit classification filters.
productstringProduct name filter

search_flows

LCA / ACV — search for biosphere flows (emissions, resources) by name. Use this to locate specific substances (CO2, CH4, water, land occupation) before querying characterization factors or inventory contributions.

ParameterTypeRequiredDescription
databasestringDatabase name
limitintegerMax results (default 20)
querystringFlow name to search for

get_activity

LCA / ACV — get detailed information about an activity: name, location, exchanges, reference product, metadata. Use exchange_type / is_input / flow to filter exchanges and reduce response size.

ParameterTypeRequiredDescription
databasestringDatabase name
exchange_typestringFilter exchanges: "biosphere" (emissions/resources only), "technosphere" (inputs/outputs only), or "all" (default)
flowstringFilter exchanges by flow name (case-insensitive substring)
is_inputbooleanIf true, return only inputs; if false, only outputs; omit for both. Combines with exchange_type.
process_idstringProcess ID (activityUUID_productUUID format)

aggregate

LCA / ACV — aggregate exchanges, supply chain entries, or biosphere flows with SQL group-by-style filters. One primitive replaces ad-hoc decomposition tools — express any 'how much X is in Y' question as one call. Also the right tool for 'combien de surface agricole / d'eau / d'énergie dans un produit ?' style questions via scope=biosphere or scope=supply_chain. Examples: - Total electricity in direct inputs: scope=direct, is_input=true, filter_name=Electricity, filter_unit=kWh - Mass breakdown of direct inputs: scope=direct, is_input=true, filter_unit=kg, group_by=name - Total energy across the supply chain: scope=supply_chain, max_depth=2, filter_classification=["Category type=energy:exact"] - Largest pasture occupation flow: scope=biosphere, filter_name=Occupation, pasture, group_by=name The filter_classification parameter accepts a list of strings in "System=Value[:exact]" form (default mode is 'contains').

ParameterTypeRequiredDescription
aggregatestringsum_quantity | count | share (default: sum_quantity)
databasestringDatabase name
filter_classificationstring[]List of "System=Value[:exact]" strings; defaults to 'contains' mode
filter_is_referencebooleanFilter by reference-product flag (typically for outputs)
filter_namestringCase-insensitive substring on flow/activity name
filter_name_notstringComma-separated substring exclude list
filter_target_namestringOnly for scope=direct technosphere — filter by upstream activity name
filter_unitstringExact unit name
group_bystringname | flow_id | name_prefix | unit | classification.<system> | location | target_name
is_inputbooleanOnly for scope=direct — true=inputs only, false=outputs only
max_depthintegerOnly for scope=supply_chain — max hops from the root activity
presetstringName of a classification preset (from list_presets) — expanded and merged into filter_classification.
process_idstringProcess ID (activityUUID_productUUID format)
scopestringdirect | supply_chain | biosphere

get_supply_chain

LCA / ACV — get a flat list of all upstream activities in the supply chain (chaîne amont, filière, intrants). The 'quantity' field is the cumulative scaled amount relative to the functional unit (scaling_factor × root reference product amount). To get the per-step yield ratio between two connected entries, divide the supplier's scaling_factor by the consumer's scaling_factor.

ParameterTypeRequiredDescription
classificationstringClassification system name (e.g. 'Category', 'Category type')
classification_matchstringMatch mode: "exact" (case-insensitive equality) or "contains" (substring, default)
classification_valuestringValue within the classification system
databasestringDatabase name
limitintegerMax results (default 100)
locationstringFilter by location
max_depthintegerMax depth from root (1 = direct inputs only)
min_quantitynumberMin scaled quantity threshold
namestringFilter by activity name
presetstringName of a classification preset (from list_presets) — expands to its bundled filters. Unioned with any explicit classification / classification_value / classification_mode parameters.
process_idstringProcess ID (activityUUID_productUUID format)
substitutionsobject[]Optional what-if supplier substitutions. Each entry: {from: oldSupplierPID, to: newSupplierPID, consumer: consumerPID}. PIDs can be bare (root DB) or qualified as dbName::pid (cross-DB). When empty or absent, the call behaves as a plain GET.

get_inventory

LCA / ACV — compute the Life Cycle Inventory (LCI): biosphere flows (emissions and resource extractions) for an activity's full supply chain. Returns statistics and top flows by quantity. Use this (not get_impacts) when the question targets raw physical flows rather than weighted scores: land / pasture occupation (m²·year), water withdrawal (m³), specific emissions (kg CO₂, kg CH₄, kg N), resource extraction.

ParameterTypeRequiredDescription
databasestringDatabase name
flowstringFilter flows by name (case-insensitive substring)
limitintegerMax flows to return, sorted by absolute quantity (default 50)
process_idstringProcess ID (activityUUID_productUUID format)
substitutionsobject[]Optional what-if supplier substitutions. Each entry: {from: oldSupplierPID, to: newSupplierPID, consumer: consumerPID}. PIDs can be bare (root DB) or qualified as dbName::pid (cross-DB). When empty or absent, the call behaves as a plain GET.

get_impacts

LCA / ACV — compute Life Cycle Impact Assessment (LCIA) scores for an activity. Returns the score, functional unit, and top contributing elementary flows. Answers 'empreinte carbone / environmental footprint' questions. Covers all LCIA categories: climate change, acidification, eutrophication, land use, water scarcity, resource depletion. Prefer this over web estimates for grounded, database-backed answers.

ParameterTypeRequiredDescription
databasestringDatabase name
method_idstringMethod UUID
process_idstringProcess ID (activityUUID_productUUID format)
substitutionsobject[]Optional what-if supplier substitutions. Each entry: {from: oldSupplierPID, to: newSupplierPID, consumer: consumerPID}. PIDs can be bare (root DB) or qualified as dbName::pid (cross-DB). When empty or absent, the call behaves as a plain GET.
top_flowsintegerNumber of top contributing flows to return (default 5)

list_methods

LCA / ACV — list all loaded LCIA methods (impact assessment methods like climate change, acidification, eutrophication, land use, water scarcity).

get_flow_mapping

LCA / ACV — get the mapping between a method's characterization factors and database flows, showing match coverage.

ParameterTypeRequiredDescription
databasestringDatabase name
method_idstringMethod UUID

get_characterization

LCA / ACV — look up characterization factors for a method matched against database flows. Without 'flow' filter, returns top factors by absolute value. With 'flow', searches by name. Shows CF value, direction, matched database flow, and match strategy.

ParameterTypeRequiredDescription
databasestringDatabase name
flowstringFilter by flow name (case-insensitive substring, matches both method CF name and database flow name)
limitintegerMax results (default 20)
method_idstringMethod UUID

get_contributing_flows

LCA / ACV — identify which elementary flows (emissions/resources) contribute most to a specific impact category. Answers 'which emissions drive my climate change score?'

ParameterTypeRequiredDescription
databasestringDatabase name
limitintegerMax flows to return, sorted by contribution (default 20)
method_idstringMethod UUID for the impact category
process_idstringProcess ID (activityUUID_productUUID format)

get_contributing_activities

LCA / ACV — identify which upstream activities contribute most to a specific impact category. Answers 'which suppliers drive my climate change score?' Uses exact matrix-based computation, valid even for cyclic supply chains.

ParameterTypeRequiredDescription
databasestringDatabase name
limitintegerMax processes to return, sorted by contribution (default 10)
method_idstringMethod UUID for the impact category
process_idstringProcess ID (activityUUID_productUUID format)

list_geographies

LCA / ACV — list all geography codes present in a database, with display names and parent regions. Use the 'geo' value as the geography filter in search_activities.

ParameterTypeRequiredDescription
databasestringDatabase name

list_classifications

LCA / ACV — list classification systems in a database. Without 'system': returns system names and activity counts only (lightweight). With 'system': returns all values for that system. Add 'filter' to narrow values by substring.

ParameterTypeRequiredDescription
databasestringDatabase name
filterstringSubstring filter applied to values when a system is specified (case-insensitive).
systemstringClassification system name to inspect (e.g. 'ISIC rev.4 ecoinvent'). If omitted, returns only system names and counts.

get_path_to

LCA / ACV — find the shortest supply chain path from a process to the first upstream activity whose name matches a pattern. Each step includes cumulative_quantity, scaling_factor, and local_step_ratio (upstream ÷ downstream scaling factors). total_ratio is the product of all local_step_ratio values — the end-to-end conversion factor.

ParameterTypeRequiredDescription
databasestringDatabase name
process_idstringProcess ID (activityUUID_productUUID format)
targetstringCase-insensitive name substring to stop at

get_consumers

LCA / ACV — find all activities that transitively consume (depend on) a given supplier. Returns a flat list, each with a crDepth field: 1 = direct consumer, 2 = consumer of consumer, etc. Useful for tracing downstream use of a raw material — e.g. finding transformed food products in Agribalyse that use a raw ingredient.

ParameterTypeRequiredDescription
classificationstringClassification system name (e.g. 'ISIC rev.4 ecoinvent')
classification_valuestringClassification value substring to match
databasestringDatabase name
limitintegerMax results (default 1000)
locationstringFilter by geography/location (case-insensitive substring, e.g. 'FR', 'DE')
max_depthintegerMax hops from supplier (1 = direct consumers only)
namestringFilter by name (case-insensitive substring)
presetstringName of a classification preset (from list_presets) — expands to its bundled filters
process_idstringProcess ID of the supplier (activityUUID_productUUID format)
productstringFilter by product name (case-insensitive substring)