Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
load_networkA

Load an EPANET .inp file into a named session.

Args: path: Absolute file path, relative path, or bare filename (e.g. "Net1.inp") searched in ePyT's bundled networks. network_id: Optional human-readable session identifier. Defaults to the file's base name without extension.

Returns: network_id, path, and a network summary (node/link counts, flow units, simulation duration).

unload_networkA

Unload a previously loaded network and free its resources.

Args: network_id: The session id returned by load_network.

list_networksA

Return the ids of all currently loaded networks.

list_bundled_networksA

List every .inp example file bundled with ePyT (usable with load_network).

get_network_summaryA

Return a high-level summary of a loaded network.

Includes node/link counts, flow units, simulation duration and hydraulic timestep.

Args: network_id: Session id of the network to inspect.

get_nodesA

Return all nodes (junctions, tanks, reservoirs) with their attributes.

Attributes include elevation, base demand, and type. Tanks also include min/max/initial water levels and diameter.

Args: network_id: Session id of the network to inspect.

get_linksA

Return all links (pipes, pumps, valves) with their attributes.

Attributes include type, connected nodes, diameter, length, roughness coefficient, and minor loss coefficient.

Args: network_id: Session id of the network to inspect.

get_patternsA

Return all demand / operational patterns defined in the network.

Args: network_id: Session id of the network to inspect.

get_controlsC

Return all simple controls defined in the network.

Args: network_id: Session id of the network to inspect.

get_curvesA

Return all curves (pump head, efficiency, volume, valve) in the network.

Args: network_id: Session id of the network to inspect.

get_optionsA

Return simulation options: timesteps, units, quality settings, head-loss formula, and demand model.

Args: network_id: Session id of the network to inspect.

run_hydraulic_simulationC

Run a full hydraulic simulation and return time-series results.

Returns pressures, demands, heads, flows, velocities, head-losses and link statuses at every reporting time step.

Args: network_id: Session id of the network to simulate.

run_quality_simulationB

Run a full water-quality simulation and return time-series results.

Includes node/link quality concentrations plus all hydraulic results. Configure the quality type first with set_quality_type.

Args: network_id: Session id of the network to simulate.

run_full_simulationA

Run both hydraulic and water-quality simulations and return combined time-series results (pressures, flows, quality, reaction rates, etc.).

Args: network_id: Session id of the network to simulate.

get_pressure_at_timeA

Return node pressures at (or nearest to) a specific simulation time.

Args: network_id: Session id of the network. time_s: Simulation time in seconds (e.g. 3600 = 1 hour).

get_flow_at_timeA

Return link flows at (or nearest to) a specific simulation time.

Args: network_id: Session id of the network. time_s: Simulation time in seconds.

save_networkB

Save the current (possibly modified) network to a new .inp file.

Args: network_id: Session id of the network to save. output_path: Destination file path (should end in .inp).

set_node_base_demandB

Set the base demand for a junction node.

Args: network_id: Session id. node_id: Junction node name/ID. demand: New base demand in the network's flow units. demand_category: Demand category index (default 1).

set_patternB

Overwrite all multiplier values for a named demand pattern.

Args: network_id: Session id. pattern_id: Name of an existing pattern. values: New list of multiplier values.

add_patternB

Add a new demand / operational pattern to the network.

Args: network_id: Session id. pattern_id: Unique name for the new pattern. values: Multiplier values for consecutive pattern time steps.

set_pipe_diameterA

Set the diameter of a pipe.

Args: network_id: Session id. pipe_id: Pipe name/ID. diameter: New diameter in the network's length units (mm or inches).

set_pipe_roughnessA

Set the roughness coefficient of a pipe.

Args: network_id: Session id. pipe_id: Pipe name/ID. roughness: Hazen-Williams C factor (or Darcy-Weisbach roughness height).

set_pipe_statusB

Open or close a pipe.

Args: network_id: Session id. pipe_id: Pipe name/ID. status: "OPEN" or "CLOSED".

set_pipe_lengthB

Set the length of a pipe.

Args: network_id: Session id. pipe_id: Pipe name/ID. length: New length in the network's length units (feet or metres).

set_pump_statusA

Start or stop a pump.

Args: network_id: Session id. pump_id: Pump link name/ID. status: "OPEN" (running) or "CLOSED" (stopped).

set_pump_speedC

Set the relative speed setting of a pump.

Args: network_id: Session id. pump_id: Pump link name/ID. speed: Speed ratio (1.0 = design speed, 0.5 = half speed).

set_pump_head_curveB

Set (replace) the head-flow curve of a pump.

Args: network_id: Session id. pump_id: Pump link name/ID. flow_values: X-axis (flow) values. head_values: Y-axis (head) values.

set_valve_settingA

Set the initial setting of a valve.

PRV/PSV/PBV → pressure setpoint; FCV → flow rate; TCV → loss coefficient.

Args: network_id: Session id. valve_id: Valve link name/ID. setting: New setting value.

set_valve_statusB

Open or close a valve.

Args: network_id: Session id. valve_id: Valve link name/ID. status: "OPEN" or "CLOSED".

set_tank_parametersB

Update one or more parameters of a tank node.

Only provided parameters are changed; others retain their current values.

Args: network_id: Session id. tank_id: Tank node name/ID. initial_level: Water level at simulation start. min_level: Minimum operating level. max_level: Maximum operating level. diameter: Tank diameter.

set_reservoir_headA

Set the total head (water-surface elevation) of a reservoir.

Args: network_id: Session id. reservoir_id: Reservoir node name/ID. head: Total head value in the network's pressure-head units.

set_simulation_durationC

Set the total simulation duration.

Args: network_id: Session id. duration_s: Duration in seconds (e.g. 86400 = 24 h).

set_hydraulic_timestepC

Set the hydraulic time step.

Args: network_id: Session id. timestep_s: Hydraulic time step in seconds.

set_quality_timestepA

Set the water-quality simulation time step.

Args: network_id: Session id. timestep_s: Quality time step in seconds.

set_quality_typeA

Set the water-quality analysis type.

Args: network_id: Session id. quality_type: One of "NONE", "AGE", "TRACE", or "CHEM". tracer_node: Source node for TRACE analysis. chemical_name: Species name for CHEM analysis. units: Concentration units (e.g. "mg/L").

add_controlB

Add a new simple control rule.

Example control strings::

"LINK P1 CLOSED IF NODE T1 ABOVE 20"
"LINK P1 OPEN IF NODE J2 BELOW 10"
"LINK Pump9 1.5 AT TIME 16:00"

Args: network_id: Session id. control_string: EPANET simple-control syntax string.

delete_controlA

Delete a simple control by its 1-based index.

Args: network_id: Session id. control_index: 1-based index (use get_controls to list them).

create_demand_perturbationA

Apply base-demand multipliers to a set of nodes and optionally simulate.

A clone of the source network is created; the original is unchanged.

Args: network_id: Source network id. node_demands: {node_id: multiplier} — e.g. {"J1": 2.0} doubles demand at J1. scenario_id: Id for the cloned scenario session (auto-generated if omitted). run_simulation: Run a full simulation after applying changes.

create_leakage_eventA

Simulate a pipe burst by adding a leakage emitter at the pipe midpoint.

A clone of the source network is created; the original is unchanged. The burst pipe is split into two halves and a midpoint junction node with an emitter is added.

Args: network_id: Source network id. pipe_id: Id of the pipe that bursts. leak_fraction: Fraction of flow that leaks (0.0–1.0). scenario_id: Id for the cloned scenario session. run_simulation: Run a full simulation after applying changes.

create_contamination_eventA

Inject a contaminant at a node for a specified time window and simulate.

A clone of the source network is created. Quality type is set to CHEM automatically.

Args: network_id: Source network id. source_node_id: Node where the contaminant is introduced. concentration: Concentration in mg/L (or model quality units). start_time_s: Injection start time in seconds. end_time_s: Injection end time in seconds. source_type: "CONCEN", "MASS", "FLOWPACED", or "SETPOINT". scenario_id: Id for the cloned scenario session. run_simulation: Run a full simulation after applying changes.

create_pressure_change_scenarioA

Study pressure changes by modifying reservoir heads.

A clone of the source network is created; the original is unchanged.

Args: network_id: Source network id. reservoir_heads: {reservoir_id: new_head} — e.g. {"Reservoir1": 120.0}. scenario_id: Id for the cloned scenario session. run_simulation: Run a full simulation after applying changes.

create_pump_control_scenarioA

Apply a time-based pump on/off or speed schedule and simulate.

A clone of the source network is created; the original is unchanged.

Each pump entry maps to a list of EPANET simple-control strings::

{
    "Pump9": [
        "LINK Pump9 1.0 AT TIME 06:00",
        "LINK Pump9 CLOSED AT TIME 22:00"
    ]
}

Args: network_id: Source network id. pump_schedule: {pump_id: [control_string, ...]} schedule. scenario_id: Id for the cloned scenario session. run_simulation: Run a full simulation after applying changes.

create_valve_control_scenarioA

Apply static valve-setting changes and simulate.

A clone of the source network is created; the original is unchanged.

Args: network_id: Source network id. valve_settings: {valve_id: new_setting} map. scenario_id: Id for the cloned scenario session. run_simulation: Run a full simulation after applying changes.

create_multi_failure_scenarioA

Simulate simultaneous pipe and/or pump failures (closure).

A clone of the source network is created; the original is unchanged.

Args: network_id: Source network id. failed_pipes: List of pipe ids to close. failed_pumps: List of pump ids to close. scenario_id: Id for the cloned scenario session. run_simulation: Run a full simulation after applying changes.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Applied-Artificial-Intelligence-Eurecat/epanet-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server