MCP Tools Reference
VoLCA exposes 18 tools via MCP. All tools return JSON as a text content block.
Quick reference
Section titled “Quick reference”| Tool | Required parameters | Purpose |
|---|---|---|
list_databases | — | LCA / ACV — list all loaded LCA databases (Agribalyse, ecoinvent, …) |
list_presets | — | LCA / ACV — list named classification filter presets configured in this instance |
search_activities | database, name | LCA / ACV — search for activities (processes) by name, geography, product, classification, or preset |
search_flows | database, query | LCA / ACV — search for biosphere flows (emissions, resources) by name |
get_activity | database, process_id | LCA / ACV — get detailed information about an activity: name, location, exchanges, reference product, metadata |
aggregate | database, process_id, scope | LCA / ACV — aggregate exchanges, supply chain entries, or biosphere flows with SQL group-by-style filters |
get_supply_chain | database, process_id | LCA / ACV — get a flat list of all upstream activities in the supply chain (chaîne amont, filière, intrants) |
get_inventory | database, process_id | LCA / ACV — compute the Life Cycle Inventory (LCI): biosphere flows (emissions and resource extractions) for an activity's full supply chain |
get_impacts | database, process_id, method_id | LCA / ACV — compute Life Cycle Impact Assessment (LCIA) scores for an activity |
list_methods | — | LCA / ACV — list all loaded LCIA methods (impact assessment methods like climate change, acidification, eutrophication, land use, water scarcity) |
get_flow_mapping | database, method_id | LCA / ACV — get the mapping between a method's characterization factors and database flows, showing match coverage |
get_characterization | database, method_id | LCA / ACV — look up characterization factors for a method matched against database flows |
get_contributing_flows | database, process_id, method_id | LCA / ACV — identify which elementary flows (emissions/resources) contribute most to a specific impact category |
get_contributing_activities | database, process_id, method_id | LCA / ACV — identify which upstream activities contribute most to a specific impact category |
list_geographies | database | LCA / ACV — list all geography codes present in a database, with display names and parent regions |
list_classifications | database | LCA / ACV — list classification systems in a database |
get_path_to | database, process_id, target | LCA / ACV — find the shortest supply chain path from a process to the first upstream activity whose name matches a pattern |
get_consumers | database, process_id | LCA / ACV — find all activities that transitively consume (depend on) a given supplier |
Tool details
Section titled “Tool details”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.
| Parameter | Type | Required | Description |
|---|---|---|---|
classification | string | Classification system name to filter by (e.g. 'ISIC rev.4 ecoinvent', 'CPC'). Use list_classifications to see available systems. | |
classification_match | string | Match mode: "equals" (case-insensitive equality) or "contains" (substring, default) | |
classification_value | string | Value within the classification system to match | |
database | string | ✓ | Database name |
exact | boolean | If true, name and geo must match exactly (case-insensitive equality) instead of substring search | |
geo | string | Geography/location filter (e.g. 'FR', 'DE', 'GLO') | |
limit | integer | Max results (default 20) | |
name | string | ✓ | Name substring to search for (or exact name if exact=true) |
preset | string | Name of a classification preset (from list_presets) — expands to its bundled filters. Can be combined with explicit classification filters. | |
product | string | Product 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
limit | integer | Max results (default 20) | |
query | string | ✓ | Flow 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
exchange_type | string | Filter exchanges: "biosphere" (emissions/resources only), "technosphere" (inputs/outputs only), or "all" (default) | |
flow | string | Filter exchanges by flow name (case-insensitive substring) | |
is_input | boolean | If true, return only inputs; if false, only outputs; omit for both. Combines with exchange_type. | |
process_id | string | ✓ | Process 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').
| Parameter | Type | Required | Description |
|---|---|---|---|
aggregate | string | sum_quantity | count | share (default: sum_quantity) | |
database | string | ✓ | Database name |
filter_classification | string[] | List of "System=Value[:exact]" strings; defaults to 'contains' mode | |
filter_is_reference | boolean | Filter by reference-product flag (typically for outputs) | |
filter_name | string | Case-insensitive substring on flow/activity name | |
filter_name_not | string | Comma-separated substring exclude list | |
filter_target_name | string | Only for scope=direct technosphere — filter by upstream activity name | |
filter_unit | string | Exact unit name | |
group_by | string | name | flow_id | name_prefix | unit | classification.<system> | location | target_name | |
is_input | boolean | Only for scope=direct — true=inputs only, false=outputs only | |
max_depth | integer | Only for scope=supply_chain — max hops from the root activity | |
preset | string | Name of a classification preset (from list_presets) — expanded and merged into filter_classification. | |
process_id | string | ✓ | Process ID (activityUUID_productUUID format) |
scope | string | ✓ | direct | 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
classification | string | Classification system name (e.g. 'Category', 'Category type') | |
classification_match | string | Match mode: "exact" (case-insensitive equality) or "contains" (substring, default) | |
classification_value | string | Value within the classification system | |
database | string | ✓ | Database name |
limit | integer | Max results (default 100) | |
location | string | Filter by location | |
max_depth | integer | Max depth from root (1 = direct inputs only) | |
min_quantity | number | Min scaled quantity threshold | |
name | string | Filter by activity name | |
preset | string | Name of a classification preset (from list_presets) — expands to its bundled filters. Unioned with any explicit classification / classification_value / classification_mode parameters. | |
process_id | string | ✓ | Process ID (activityUUID_productUUID format) |
substitutions | object[] | 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
flow | string | Filter flows by name (case-insensitive substring) | |
limit | integer | Max flows to return, sorted by absolute quantity (default 50) | |
process_id | string | ✓ | Process ID (activityUUID_productUUID format) |
substitutions | object[] | 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
method_id | string | ✓ | Method UUID |
process_id | string | ✓ | Process ID (activityUUID_productUUID format) |
substitutions | object[] | 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_flows | integer | Number 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
method_id | string | ✓ | Method 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
flow | string | Filter by flow name (case-insensitive substring, matches both method CF name and database flow name) | |
limit | integer | Max results (default 20) | |
method_id | string | ✓ | Method 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?'
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
limit | integer | Max flows to return, sorted by contribution (default 20) | |
method_id | string | ✓ | Method UUID for the impact category |
process_id | string | ✓ | Process 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
limit | integer | Max processes to return, sorted by contribution (default 10) | |
method_id | string | ✓ | Method UUID for the impact category |
process_id | string | ✓ | Process 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
filter | string | Substring filter applied to values when a system is specified (case-insensitive). | |
system | string | Classification 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.
| Parameter | Type | Required | Description |
|---|---|---|---|
database | string | ✓ | Database name |
process_id | string | ✓ | Process ID (activityUUID_productUUID format) |
target | string | ✓ | Case-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.
| Parameter | Type | Required | Description |
|---|---|---|---|
classification | string | Classification system name (e.g. 'ISIC rev.4 ecoinvent') | |
classification_value | string | Classification value substring to match | |
database | string | ✓ | Database name |
limit | integer | Max results (default 1000) | |
location | string | Filter by geography/location (case-insensitive substring, e.g. 'FR', 'DE') | |
max_depth | integer | Max hops from supplier (1 = direct consumers only) | |
name | string | Filter by name (case-insensitive substring) | |
preset | string | Name of a classification preset (from list_presets) — expands to its bundled filters | |
process_id | string | ✓ | Process ID of the supplier (activityUUID_productUUID format) |
product | string | Filter by product name (case-insensitive substring) |