describe_feedstockLABSCO SUMMARY
The feedstock translation is the part that saves the afternoon.
ADM1 itself is well specified and freely implemented; what stops people using it is that a digester feed has to become a long vector of state variables before anything runs. Turning a written description into that vector, then offering a charge-balance check on the result, is where the time goes. Worth setting up deliberately: three reactor slots means you can run configurations side by side rather than one at a time, and the inhibition analysis is what tells you why a run underperformed instead of just that it did.
What it is
A wastewater process modelling server built on the Anaerobic Digestion Model No. 1, the international standard for anaerobic digester simulation. The hard part of ADM1 is normally translating a real feedstock into dozens of state variables; here you describe the waste in plain language and the server derives them, then runs the simulation and interprets the result.
What you get
- Feedstock definition from a written description — either state variables alone, or state variables together with kinetic parameters tuned to that feedstock —
describe_feedstock,describe_kinetics - Simulation setup as separate, checkable steps: influent flow rate with simulation time and time step, then per-reactor temperature, hydraulic retention time and integration method, for up to three reactor configurations —
set_flow_parameters,set_reactor_parameters - The simulation itself, run against whatever parameters are currently set —
run_simulation_tool - Stream analysis for the influent, any of the three effluents, or any of the three biogas streams —
get_stream_properties - Process diagnosis rather than raw output: inhibition factors with optimization recommendations, biomass yields and efficiency, and a nutrient-balance check on the carbon, nitrogen and phosphorus ratios —
get_inhibition_analysis,get_biomass_yields,check_nutrient_balance - A thermodynamic consistency check on the feedstock you just defined, before you spend a simulation on it —
validate_feedstock_charge_balance - Parameter access and a reset, so a run can be adjusted in place or started clean —
get_parameter,set_parameter,reset_simulation - Report generation with charts and methodology sections, built from the actual simulation data —
generate_report - A system prompt shipped in the README that walks a model through the correct order of operations, including which of the two feedstock tools to call and never both
Requirements
A Google API key for the language-model step that turns a feedstock description into ADM1 parameters, set as GOOGLE_API_KEY in a .env file. Python 3.8 or higher. Clone the repository, create a virtual environment and install from requirements — QSDsan, which carries the ADM1 implementation, comes with the dependencies. The client entry points at server.py using the virtual environment's own python, and the README sets MCP_TIMEOUT to 600000 because simulations are not fast.
Setup effort
Build from source — git clone https://github.com/puran-water/adm1-mcp.git
USE CASES
Sizing a digester for a feedstock you have described in words
Turn the description into state variables, set flow and reactor conditions, run it, and read the methane output — without hand-building the parameter set.
Comparing operating conditions
Configure the reactor slots with different temperatures or retention times, run them, and compare effluent and biogas streams side by side.
Working out why a digester is underperforming
Read the inhibition analysis with its recommendations and check the nutrient ratios, rather than inferring the cause from the gas curve.
Catching a bad feedstock definition early
Validate the charge balance immediately after defining the feedstock, so a thermodynamically inconsistent input is caught before the simulation.
Turning a run into something you can hand over
Generate the report with its charts and methodology section straight from the simulation data.
14 tools
Listed in project docs. Your client may show a different list.
describe_kineticsset_flow_parametersset_reactor_parametersrun_simulation_toolget_stream_propertiesget_inhibition_analysisget_biomass_yieldsvalidate_feedstock_charge_balancecheck_nutrient_balanceget_parameterset_parametergenerate_reportreset_simulationBEFORE YOU INSTALL
What to know first
Tools you get
14 tools named in the project's documentation. describe_feedstock and describe_kinetics call Google Gemini and need GOOGLE_API_KEY; the other twelve run locally.
Requires
- Python 3.8 or later
- GOOGLE_API_KEY in your environment
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/puran-water/adm1-mcp.git
cd adm1-mcp
python -m venv venvActivate it — macOS/Linux:
source venv/bin/activate; Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .envEdit .env and add your Google API key:
GOOGLE_API_KEY=<YOUR_GOOGLE_API_KEY>MCP Clients
Claude Desktop
{
"mcpServers": {
"adm1-mcp": {
"command": "<YOUR_PATH_TO_VENV>\\Scripts\\python.exe",
"args": [
"<YOUR_PATH_TO_ADM1_MCP>\\server.py"
],
"env": {
"MCP_TIMEOUT": "600000"
}
}
}
}The README gives Windows paths. The python.exe path is the one in the venv you just created (venv\Scripts\python.exe inside your adm1-mcp clone), and the server.py path is the full path of the clone's server.py. On macOS or Linux, use the venv's bin/python (…/adm1-mcp/venv/bin/python) and the full path of server.py instead.
The configuration on this page does not set GOOGLE_API_KEY; the project's instructions put it in a .env file. To supply GOOGLE_API_KEY without depending on where the server looks for that file, use the block's "env" section.