worldparts
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_componentsA | Search the component catalogue. Returns id, alias, name, summary, ports, key parameters (with units and defaults), fidelity level and tags of every matching component. Call without a query to list everything, then describe_component with all the components you need in one call. |
| describe_componentA | Describe component types: everything needed to use them. Pass every component you need as a list in one call: the result is then {components: [...]} in that order (one id: one description). Each has ports; parameters and inputs with units, defaults and hard limits (table columns in row order); states and observables; modes (the first whose condition holds is reported); warning codes; scenario and contract ids; bindings. Plain numbers are in these units; pressures are gauge unless stated; quantity 'temperature_difference' converts by scale only. A state's |
| run_contractsA | Run a component's scenarios and contracts and report pass or fail. Scenarios have expected results; contracts check monotonicity, bounds, conservation and warning conditions against the reference implementation. |
| create_systemA | Create a new empty system and return its system_id. For building step by step; a new system is quicker as one load_system call. |
| add_componentA | Add a component instance to a system. Returns the resolved parameters, inputs and states with units, the instance's port paths, and pre-flight issues about it (unconnected ports until you connect them). |
| remove_componentA | Remove a component instance and every connection to it. |
| set_valuesA | Set inputs, parameters or states by path (atomically: all or nothing). Plain numbers are in the declared unit; strings may carry units. Returns the values now in effect, in declared units. |
| connectA | Connect two ports. Connecting several ports to one node forms a junction (tee). Errors name the offending port and list the instance's valid ports. Returns the connections and the ports still unconnected (unconnected ports are capped). |
| disconnectB | Remove the direct connection between two ports. |
| add_controlA | Add a control that reads one result and writes one component input. pi: solve finds the output holding the setpoint (control_saturated if unreachable); simulate runs it after each step's solve. hysteresis: on below on_below, off above off_above (short_cycling if too frequent). Returns every control. |
| remove_controlA | Remove a control; its input keeps its last value. |
| check_systemA | Structural pre-flight with stable issue codes. Codes: unknown_component, unknown_port, incompatible_ports, self_connection, unconnected_port (warning), no_pressure_reference, boundary_short_circuit, parameter_out_of_range, invalid_value; for controls unknown_variable, invalid_control, control_conflict. solve and simulate refuse to run while any error remains. |
| list_variablesA | Every variable path with kind, unit, limits and description. Kinds: parameter, input, state (settable), observable, port ('..p' in bar gauge, '.m_flow' in kg/s into the component, '.T' in degC) and control ('control..output' and '.measure'; component='control' lists them). |
| solveA | Solve the steady operating point. Returns the selected values with units (6 significant digits; pressures carry their reference, port pressures are bar gauge), the mode of every instance, component warnings and non-fatal pre-flight issues. Fails with the list of errors when check_system reports any. Controls: PI actuators are set to hold their setpoints, hysteresis switches hold their state; |
| solve_forA | Goal seek: the value of one input or parameter that gives a target result. Brent's method on |
| simulateA | Simulate over time with a fixed step and timed events (set or linear ramp). Samples at every multiple of step, at each event time and at the end. Returns downsampled series with min, max and final over the full run; each warning once (first time, last time, active at end); every mode change. Controls act after each sample's solve (taking effect over the next step); their series are always included and |
| get_systemA | The system document (design 6.3): components with explicit values, connections, changed states, controls and the optional simulation block. Pass it to load_system later. |
| load_systemA | Build a whole system in one call from a system document; returns its system_id. The quickest way to create a system: every component (with parameters and inputs), connection and control in one document, then solve. get_system returns such a document. A wrong shape fails with every schema error and the expected shape of the offending part; unknown types, ports and invalid values are kept and listed in |
| export_systemA | Export a system as EPANET .inp text (units CMH, Darcy-Weisbach). Faucets and heaters are unsupported. |
| compare_with_wntrA | Solve the system here and in EPANET (via WNTR) and compare: per-link flows (m3/h) and node pressures (bar gauge), differences and why they diverge. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| centrifugal_pump | Variable-speed centrifugal pump from head, shaft-power and NPSH curves, with affinity-law scaling, wear, efficiency, best-efficiency point and cavitation check. |
| check_valve | Non-return valve with a Kv law in the forward direction and a small leakage in reverse. |
| drain | Open discharge to atmosphere such as a basin, open channel or floor drain. |
| instantaneous_water_heater | Flow-switched tankless water heater with an outlet setpoint, a power limit, an activation flow and a Kv pressure drop. |
| leak | Orifice discharging to atmosphere from one port, for burst or background leakage and leak diagnosis; flow grows with the square root of the gauge pressure. |
| media_filter | Sand or cartridge filter with a linear media loss that grows with clogging and a quadratic housing loss. |
| mixing_faucet | Single-lever basin or shower mixer with Kv cartridges, spout discharge to atmosphere, energy-balance mixing and crossflow detection. |
| pipe | Straight pipe with Darcy-Weisbach friction (Churchill 1977 friction factor), minor losses and static head. |
| supply | Ideal pressure source such as a water main, reservoir or pressurised line, with a fixed supply temperature. |
| tank | Open atmospheric cylindrical tank with a bottom outlet and a bottom or top inlet, level-dependent static head, overflow at the rim and perfectly mixed temperature. |
| uv_reactor | UV reactor with a quadratic pressure drop through its rated point and an idealised plug-flow average UV dose. |
| valve | Throttling valve with Kv sizing, inherent characteristic, leakage and first-order actuator lag. |
TDQS
Scored across 20 tools
Every tool targets a distinct operation: system retrieval vs. construction, component search vs. description, steady vs. goal-seek vs. dynamic simulation. Even close pairs like get_system/load_system and solve/solve_for are clearly separated by their descriptions.
Tool names follow a consistent imperative lower_snake_case pattern, mostly verb_noun (get_system, list_components, create_system, add_control). A few bare verbs (connect, solve, simulate) are still predictable and match common simulation vocabulary.
At 20 tools, the set is on the heavier side, but the domain—hydraulic system modeling, simulation, controls, and validation—justifies the breadth. Each tool addresses a distinct phase of the workflow, so the count feels slightly over but reasonable rather than bloated.
The surface covers creation, inspection, modification, connection, control, solving, simulation, export, and validation comprehensively. Minor gaps exist, such as no explicit delete_system tool or system listing, but these do not block core modeling and analysis workflows.