Experimental MCP server connecting AI assistants to openLCA. 31 tools for database search, model building, auditing, and impact calculations.
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
- !Licence file present but not machine-readable
claude mcp add b280-olca-mcp -- python -m b280-olca-mcp{
"mcpServers": {
"b280-olca-mcp": {
"command": "python",
"args": ["-m", "b280_olca_mcp"]
}
}
}MCP Servers overview
# openLCA MCP Server
An MCP (Model Context Protocol) server that connects AI assistants to a running openLCA instance. Developed and tested with Claude Desktop; compatible with any MCP client that supports stdio transport. Built by [Below280](https://below280.com), the UK partner for openLCA.
The server exposes 35 tools covering the full LCA workflow: exploring databases, building and editing models, running calculations (scenarios, sensitivity, Monte Carlo, contribution analysis), auditing and validating models, and extracting data quality assessments. All calculation patterns are tested against production ecoinvent databases.
The server works with both ecoinvent-family databases (ecoinvent, EN15804GD, HiQLCD, BAFU) and FLCAC-family databases (LCA Commons, US LCI, USEEIO). It asks which family you are using, or auto-detects from the flow property names.
Available on [PyPI](https://pypi.org/project/b280-olca-mcp/) and the [MCP Registry](https://registry.modelcontextprotocol.io).
## Install
### Quick setup (PyPI)
```
pip install b280-olca-mcp
```
This installs the server and its dependencies (`mcp`, `olca-ipc`) in one step. The server runs from anywhere with `python -m b280_olca_mcp`.
### Development setup (GitHub)
Clone the repository for the latest code, the React dashboard, or if you want to modify the server:
```
git clone https://github.com/Below280/B280-olca-MCP.git
cd B280-olca-MCP
pip install -r requirements.txt
```
The server entry point is `b280_olca_mcp/server.py`.
## What it does
Someone using this MCP can say things like:
- 'Make me a model with 34 kWh UK electricity, 5 kg sodium hydroxide, and 34 kWh steam'
- 'Build an EPD model from this LCI'
- 'Run two scenarios, one with transport at 100 km and one at 500 km'
- 'Which processes contribute most to climate change in my system?'
- 'Vary the electricity and PET resin parameters by 10%'
- 'Validate my product system and check if the linking is correct'
- 'Run 1000 Monte Carlo iterations and show me the uncertainty'
- 'Help me connect to openLCA from R / Go / Rust'
- 'What can you do?' (the help tool)
The AI assistant handles the conversation, builds the tool calls, and presents results visually with charts, tables, and exportable data.
## Connect your MCP client
The server uses stdio transport. Any MCP client that can spawn a local Python process will work.
### Claude Desktop
In Claude Desktop, go to Settings > Developer > Edit Config. Add an `openLCA` entry to the `mcpServers` section.
If you installed via PyPI:
```json
{
"mcpServers": {
"openLCA": {
"command": "python",
"args": ["-m", "b280_olca_mcp"],
"env": {
"OLCA_PORT": "8080"
}
}
}
}
```
If you cloned from GitHub:
```json
{
"mcpServers": {
"openLCA": {
"command": "python",
"args": ["C:/path/to/B280-olca-MCP/b280_olca_mcp/server.py"],
"env": {
"OLCA_PORT": "8080"
}
}
}
}
```
On Windows, if Claude Desktop cannot find Python, use the full path to your Python executable.
Restart Claude Desktop after saving.
### Cursor
Go to Settings > Tools & MCP > Add MCP Server. Choose stdio transport, set the command to `python` and the argument to `-m b280_olca_mcp` (PyPI) or the path to `b280_olca_mcp/server.py` (GitHub clone). Cursor picks up config changes without restarting.
### VS Code
Add the server to `.vscode/mcp.json` in your workspace or user settings:
```json
{
"servers": {
"openLCA": {
"type": "stdio",
"command": "python",
"args": ["-m", "b280_olca_mcp"],
"env": {
"OLCA_PORT": "8080"
}
}
}
}
```
Note: VS Code uses `servers` as the root key, not `mcpServers`. If using GitHub Copilot, switch Copilot Chat to Agent mode.
### ChatGPT
ChatGPT cannot directly launch a local stdio server. OpenAI provides the [Secure MCP Tunnel](https://github.com/openai/tunnel-client), which bridges ChatGPT to a local MCP server without exposing anything publicly. The architecture is:
```text
ChatGPT → Secure MCP Tunnel → B280 MCP (stdio) → openLCA IPC localhost:8080
```
The tunnel launches the B280 server (`python -m b280_olca_mcp`) on your machine. No changes to the B280 server are needed; it remains stdio throughout. No additional `search` or `fetch` tools are required for ChatGPT custom MCP servers.
B280's existing [tool annotations](#tool-annotations) (read-only, destructive, idempotent) are used by ChatGPT when deciding whether to auto-approve or prompt for confirmation.
For the full setup guide, including installation, configuration, troubleshooting and security considerations, see **[docs/chatgpt.md](docs/chatgpt.md)**.
ChatGPT support is currently experimental. A remote Streamable HTTP transport option may be added in future for users who prefer not to run the local tunnel.
### Other MCP clients
Any client that spawns a local Python process over stdin/stdout should work. With PyPI: `python -m b280_olca_mcp`. With GitHub clone: `python path/to/b280_olca_mcp/server.py`.
> **Beta software.** This server is under active development. Test it on a copy of your database before connecting a production database. Report issues on [GitHub](https://github.com/Below280/B280-olca-MCP/issues) or at mcp-feedback@below280.com.
## Start it
1. Open your database in openLCA
2. Start the IPC server (Tools > Developer Tools > IPC Server > green play button, port 8080)
3. Restart your MCP client (or reconnect)
4. Ask something like 'what can you do?' or 'what's in my openLCA database?'
After creating or modifying anything, press the Refresh button in openLCA's toolbar to see changes in the GUI.
## Data security
The MCP server runs locally and communicates with openLCA on localhost. The AI client (Claude Desktop or equivalent) sends tool results to its provider's servers for processing. This means process names, exchange data, parameter values, and impact results from your database will be in the conversation.
**Do not connect a confidential client database through a personal or free-tier AI account.** Use a business or enterprise account with appropriate data retention controls, and check your provider's data processing terms before connecting any database containing sensitive information.
## Tools
### Explore (11 tools)
| Tool | Purpose |
|---|---|
| `database_info` | Counts of systems, processes, flows, methods, parameters. Auto-detects database family |
| `set_database_family` | Set ecoinvent or FLCAC naming conventions |
| `list_systems` | List/search product systems |
| `list_methods` | List/search impact assessment methods |
| `search_processes` | Find processes by name, location, or category |
| `search_flows` | Find flows by name and/or category folder |
| `process_details` | Full process info: exchanges, parameters, providers |
| `system_parameters` | List parameters for a product system |
| `global_parameters` | Look up database-level parameters |
| `find_unit` | Look up units and their flow properties |
| `chemical_synonyms` | PubChem synonym search to find database matches |
### Build (8 tools)
| Tool | Purpose |
|---|---|
| `create_global_parameter` | Create or update a database-level parameter, as a value or a formula |
| `create_flow` | Create product, waste, or elementary flows |
| `edit_flow` | Add or update flow properties, or change the reference property |
| `create_bridge` | Create a bridge flow + process in one call |
| `create_process` | Build a process with exchanges, parameters, and providers |
| `edit_process` | Edit an existing process: add/update/remove exchanges and parameters |
| `create_system` | Create a product system from a process |
| `delete_entity` | Delete a process, flow, or product system (requires user confirmation; refuses to delete a flow that is still in use) |
### Audit (6 tools)
| Tool | Purpose |
|---|---|
| `extract_model` | Pull everything from a model folder for inspection |
| `audit_model` | Structural checks: missing qrefs, zero amounts, unit mismatches |
| `validate_system` | Mirrors openLCA's Validate button: linking, parameters, test calculation |
| `get_system_links` | Show which providers are linked for each exchange |
| `data_quality` | Extract pedigree matrices and uncertainty from a process |
| `find_flow_usage` | Find the processes and impact categories that use a flow |
### Calculate (9 tools)
| Tool | Purpose |
|---|---|
| `calculate` | Baseline impact assessment |
| `contribution_analysis` | Process-level contribution breakdown per impact category |
| `upstream_tree` | Multi-level contribution tree for one category, with pedigree scores on every branch |
| `monte_carlo` | Uncertainty simulation with statistics |
| `inventory_flows` | Raw elementary flow results (LCI level) |
| `scenarios` | Scenario calculations from conversational parameter values |
| `scenarios_csv` | Scenario calculations from a CSV file |
| `sensitivity` | Parameter sensitivity analysis |
| `sensitivity_csv` | Sensitivity analysis from a CSV file |
### Meta (1 tool)
| Tool | Purpose |
|---|---|
| `help` | Show capabilities grouped by workflow, with optional topic filter |
## Tool annotations
Every tool carries MCP tool annotations (`readOnlyHint`, `destructiveHint`, `idempotentHint`, `openWorldHint`) so clients can decide whether to auto-approve or prompt for confirmation. Explore and Calculate tools are read-only. Build tools signal that they modify the database. `delete_entity` is marked destructive. CSV tools are marked as writing files to disk. `chemical_synonyms` is marked as reaching an external service (PubChem).
## Resources
The server exposes four MCP resources that AI clients can read on demand:
| Resource | URI | Purpose |
|---|---|---|
| Database info | `lca://database/info` | Live database overview |
| Assistant instructions | `lca://knowledge/instructions` | Operational rules, workflows, and conventions |
| IPC protocol reference | `lca://knowledge/ipc-protocol` | Complete JSON-RPC spec foWhat people ask about B280-olca-MCP
What is Below280/B280-olca-MCP?
+
Below280/B280-olca-MCP is mcp servers for the Claude AI ecosystem. Experimental MCP server connecting AI assistants to openLCA. 31 tools for database search, model building, auditing, and impact calculations. It has 3 GitHub stars and its last recorded update is dated 2026-09-27.
How do I install B280-olca-MCP?
+
You can install B280-olca-MCP by cloning the repository (https://github.com/Below280/B280-olca-MCP) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is Below280/B280-olca-MCP safe to use?
+
Our security agent has analyzed Below280/B280-olca-MCP and assigned a Trust Score of 80/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains Below280/B280-olca-MCP?
+
Below280/B280-olca-MCP is maintained by Below280. The last recorded GitHub activity is dated 2026-09-27, with 0 open issues.
Are there alternatives to B280-olca-MCP?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy B280-olca-MCP to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/below280-b280-olca-mcp)<a href="https://claudewave.com/repo/below280-b280-olca-mcp"><img src="https://claudewave.com/api/badge/below280-b280-olca-mcp" alt="Featured on ClaudeWave: Below280/B280-olca-MCP" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
The fastest path to AI-powered full stack observability, even for lean teams.