EPANET MCP Server
io.github.Applied-Artificial-Intelligence-Eurecat/epanet-mcp-server·v0.1.2·5 starsMCP server for EPANET water-distribution network simulation and scenario analysis.
5 stars
Reviews
Write oneNobody has reviewed EPANET MCP Server yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
EPANET MCP Server tools (44, 12 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_controlAdd a new simple control rule.
add_patternAdd a new demand / operational pattern to the network.
create_contamination_eventwrite actionInject a contaminant at a node for a specified time window and simulate.
create_demand_perturbationwrite actionApply base-demand multipliers to a set of nodes and optionally simulate.
create_leakage_eventwrite actionSimulate a pipe burst by adding a leakage emitter at the pipe midpoint.
create_multi_failure_scenariowrite actionSimulate simultaneous pipe and/or pump failures (closure).
create_pressure_change_scenariowrite actionStudy pressure changes by modifying reservoir heads.
create_pump_control_scenariowrite actionApply a time-based pump on/off or speed schedule and simulate.
create_valve_control_scenariowrite actionApply static valve-setting changes and simulate.
delete_controlwrite actionDelete a simple control by its 1-based index.
get_controlsReturn all simple controls defined in the network.
get_curvesReturn all curves (pump head, efficiency, volume, valve) in the network.
get_flow_at_timeReturn link flows at (or nearest to) a specific simulation time.
get_linksReturn all links (pipes, pumps, valves) with their attributes.
get_network_summaryReturn a high-level summary of a loaded network.
get_nodesReturn all nodes (junctions, tanks, reservoirs) with their attributes.
get_optionsReturn simulation options: timesteps, units, quality settings, head-loss formula, and demand model.
get_patternsReturn all demand / operational patterns defined in the network.
get_pressure_at_timeReturn node pressures at (or nearest to) a specific simulation time.
list_bundled_networksList every .inp example file bundled with ePyT (usable with load_network).
list_networksReturn the ids of all currently loaded networks.
load_networkLoad an EPANET .inp file into a named session.
run_full_simulationwrite actionRun both hydraulic and water-quality simulations and return combined time-series results (pressures, flows, quality, reaction rates, etc.).
run_hydraulic_simulationwrite actionRun a full hydraulic simulation and return time-series results.
run_quality_simulationwrite actionRun a full water-quality simulation and return time-series results.
save_networkSave the current (possibly modified) network to a new .inp file.
set_hydraulic_timestepSet the hydraulic time step.
set_node_base_demandSet the base demand for a junction node.
set_patternOverwrite all multiplier values for a named demand pattern.
set_pipe_diameterSet the diameter of a pipe.
set_pipe_lengthSet the length of a pipe.
set_pipe_roughnessSet the roughness coefficient of a pipe.
set_pipe_statusOpen or close a pipe.
set_pump_head_curveSet (replace) the head-flow curve of a pump.
set_pump_speedSet the relative speed setting of a pump.
set_pump_statusStart or stop a pump.
set_quality_timestepSet the water-quality simulation time step.
set_quality_typeSet the water-quality analysis type.
set_reservoir_headSet the total head (water-surface elevation) of a reservoir.
set_simulation_durationSet the total simulation duration.
set_tank_parameterswrite actionUpdate one or more parameters of a tank node.
set_valve_settingSet the initial setting of a valve.
set_valve_statusOpen or close a valve.
unload_networkUnload a previously loaded network and free its resources.
Public scan report
scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it
- Code scan10 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 117 days ago8/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year9/10
How EPANET MCP Server compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 65% of 48,255 servers
- Tools
- 44
- the typical server has 7
- Tools that change things
- 27%
- typical: 0%. Fewer write tools means less an agent can break
- GitHub stars
- 5
- more than 83% of 28,688 servers
What its tools let an agent do: 13 read · 10 create · 17 change · 1 delete · 3 run or deploy
Install EPANET MCP Server in Claude Code, Cursor or VS Code
claude mcp add epanet-mcp-server -- uvx epanet-mcp-server
What the publisher says
From the EPANET MCP Server repository's README, as published. We do not edit it. Read it on GitHub
EPANET MCP Server
A Model Context Protocol (MCP) server that exposes EPANET water-distribution network modelling capabilities through ePyT - the EPANET Python Toolkit.
Any MCP-compatible LLM can load water network models, run simulations, modify parameters, and generate complex what-if scenarios through natural language.
Features
Requirements
- Python ≥ 3.10
- ePyT ≥ 2.0
- mcp ≥ 1.0
pip install epyt mcpInstallation
git clone https://github.com/Applied-Artificial-Intelligence-Eurecat/epanet-mcp-server.git
cd epanet-mcp-server
pip install -e .Running the server
stdio (for Claude Desktop / Claude Code)
epanet-mcp-server
# or
python -m epanet_mcp.serverSSE / HTTP
epanet-mcp-server --transport sse --port 8000Claude Desktop configuration
Add to ~/Library/Application Support/Claude/claudedesktopconfig.json (macOS) or the equivalent on your platform:
{
"mcpServers": {
"epanet": {
"command": "epanet-mcp-server",
"args": []
}
}
}If not on PATH:
{
"mcpServers": {
"epanet": {
"command": "python",
"args": ["-m", "epanet_mcp.server"],
"cwd": "/path/to/epanet-mcp-server/src"
}
}
}Claude Code (.mcp.json)
Place this in the root of your project or ~/.claude/:
{
"mcpServers": {
"epanet": {
"command": "epanet-mcp-server",
"args": []
}
}
}Example interactions
Once the server is connected, you can ask things like:
"Load Net1.inp and show me a summary of the network."
"Run a full simulation and tell me which node has the lowest pressure at hour 12."
"Double the base demand at junction 11 and re-run the simulation. How does pressure change?"
"Simulate a burst on pipe 10 with a 20% leakage fraction."
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
EPANET MCP Server: common questions
- Is EPANET MCP Server safe?
- Mostly: it is graded B (83/100). Read the EPANET MCP Server safety report
- How do I install EPANET MCP Server?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does EPANET MCP Server need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is EPANET MCP Server maintained?
- The last commit was 155 days ago (2026-06-02). The latest release is v0.1.2.
- How does EPANET MCP Server compare with other MCP servers?
- safety score 83/100 (higher than 65% of 48,255 servers); tools 44 (the typical server has 7); tools that change things 27% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.