Skip to main content
Glama
hjlrosales

EPANET MCP Server

by hjlrosales

pipe_sizing_wizard

Choose standard pipe sizes meeting velocity and friction-loss limits, then rank top candidates by composite suitability—one call for validated pipe selection.

Instructions

End-to-end pipe sizing wizard: given a flow rate, pipe length, and material, finds every standard pipe size that satisfies velocity AND friction-loss constraints, then ranks them by suitability. Chains velocity-based diameter recommendation with Hazen-Williams or Darcy-Weisbach friction-loss validation in a single call. Supports velocity presets (distribution/transmission/service/suction), roughness presets (hdpe/pvc/di-cement/steel-new etc.), and optional max head-loss or max pressure-drop filters. Returns the top N candidates ranked by a composite score (60% velocity closeness + 40% head-loss efficiency). Each candidate includes: nominal size, inner diameter, velocity, head loss per metre, total head loss, pressure drop, Reynolds number, flow regime, and the friction factor. Use this to make a single validated pipe selection without calling recommend_diameter and friction_loss separately.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
topNNoNumber of top-ranked candidates to return (default 5, max 20).
methodNoFriction-loss method (default: hazen-williams).
lengthMYesPipe length in metres for head-loss calculation.
flowRateYesDesign flow rate in the given flow units.
materialNoRestrict to a single material. Omit to search all.
flowUnitsYesFlow units matching EPANET's [OPTIONS] Units.
roughnessCNoHazen-Williams C-factor. Required when method is hazen-williams and no preset.
maxVelocityNoMaximum velocity in m/s (default 2.0).
minVelocityNoMinimum velocity in m/s (default 0.5).
maxHeadLossMNoMaximum allowed total head loss in metres. Candidates exceeding this are excluded.
velocityPresetNoVelocity-range preset. 'custom' (default) uses min/maxVelocity.
roughnessPresetNoRoughness preset (sets roughnessC or roughnessEpsilonMm automatically).
maxPressureDropBarNoMaximum allowed pressure drop in bar. Candidates exceeding this are excluded.
roughnessEpsilonMmNoDarcy-Weisbach roughness ε in mm. Required when method is darcy-weisbach and no preset.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It describes the chaining of velocity and friction-loss computations, the composite scoring (60% velocity closeness + 40% head-loss efficiency), the filters (max head-loss, max pressure-drop), and the detailed output fields (velocity, head loss, Reynolds number, etc.). It even notes preset behaviors. This is far beyond a typical description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence earns its place. It front-loads the core purpose in the first sentence, then logically flows through the chaining mechanism, presets, filters, output details, and usage recommendation. It avoids redundancy and clearly structures information for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (14 parameters, no output schema), the description is extraordinarily complete. It enumerates all output fields, explains the ranking criteria, specifies parameter requirements, and provides usage context. The absence of an output schema is compensated by the detailed output description. An agent has everything needed to decide when and how to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema description coverage is 100%, the description adds significant meaning beyond the schema. It explains how parameters interact (e.g., roughnessC is required when method is hazen-williams and no preset, roughnessEpsilonMm for darcy-weisbach), how velocityPreset 'custom' uses min/maxVelocity, and how the ranking score weights parameters. This enriches the raw schema definitions, providing context that helps the agent select and configure parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'End-to-end pipe sizing wizard' that finds standard pipe sizes satisfying velocity and friction-loss constraints and ranks them. It explicitly names the resource (pipe sizes) and the actions (size, validate, rank). It also differentiates itself from siblings by stating it chains recommend_diameter and friction_loss in a single call, making it distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'Use this to make a single validated pipe selection without calling recommend_diameter and friction_loss separately.' This names the alternatives (recommend_diameter, friction_loss) and the condition (need for a combined validated selection). It also implies when not to use—if only a diameter recommendation is needed, one would use the simpler tools. This is strong guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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/hjlrosales/EPAnet-MCP'

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