EPANET MCP Server
Allows generating a junction/pipe skeleton from real OpenStreetMap road data for a bounding box, with a reservoir placed at the nearest waterway and ground elevations sampled from a DEM.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EPANET MCP ServerLoad network and run 24-hour hydraulic simulation, then show results."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EPANET MCP Server
An MCP server that puts the EPANET hydraulic/water-quality engine in front of AI assistants (Claude Desktop, Cursor, VS Code Copilot, Claude Code, …) over stdio — no cloud round-trip, no browser.
It lets an AI assistant load an EPANET .inp/.net model, inspect it, run simulations, read per-node/per-link results, and make validated edits, all locally.
Tools
Network I/O —
load_network,save_network,list_networksInspection —
get_network_summary,get_nodes,get_links,get_coordinatesSimulation —
run_simulation,get_node_results,get_link_resultsMutation (engine-validated, results-invalidating) —
set_pipe_diameter,set_junction_demand,set_pump_speed,set_valve_setting,set_node_elevation,set_demand_pattern,add_tank,remove_tank,add_valveModel building —
create_network,assign_demands,sample_elevations,fetch_road_network,generate_network_from_bboxDesign helpers —
lookup_pipe_diameters,recommend_diameter,friction_loss,calculate_minor_loss,pipe_sizing_wizard,pump_selection,list_fitting_kfactorsOptimization —
optimize_network,run_candidate
generate_network_from_bbox auto-lays out a junction/pipe skeleton from real OpenStreetMap road data for a bounding box, with a reservoir placed at the nearest waterway and ground elevations sampled from a bundled IFSAR 10 m DEM.
Related MCP server: idfkit-mcp
Prerequisites
Requirement | Version |
Node.js | 20.x or 21.x |
OS | Windows, macOS, or Linux — transport is stdio, no network ports opened |
Install
npm installRun locally
The data directory the server reads from (load_network) and writes to (save_network) is path-contained — the server refuses any file outside it.
mkdir -p data
cp your-model.inp data/
export EPANET_DATA_DIR=$(pwd)/data
npm startThe server boots and waits for a client on stdio.
Wire it to an AI app
Claude Desktop
Edit claude_desktop_config.json (%APPDATA%\Claude\claude_desktop_config.json on Windows, ~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"epanet": {
"command": "npm",
"args": ["start"],
"cwd": "<absolute path to this repo>",
"env": {
"EPANET_DATA_DIR": "<absolute path to this repo>/data"
}
}
}
}Cursor / VS Code
Same shape works in Cursor (%APPDATA%\Cursor\User\globalStorage\mcp.json) or VS Code (%APPDATA%\Code\User\mcp.json) — command: "npm", same args/env.
Configuration
The server reads these environment variables:
Env var | Default | Purpose |
| cwd | Folder |
| unset | Folder the DEM/elevation tools read from |
| unset | RS256 public key for optional token-mode auth |
| unset | Loopback URL for token validation |
| unset | Expected JWT |
| unset | Expected JWT |
| unset | Static bearer token (CI use) |
| unset | Path to a file containing the bearer token |
Auth is off by default; set the EPANET_AUTH_* variables to gate the server behind an RS256 bearer token.
Tests
npm testUnit tests drive the in-memory MCP transport against committed .inp fixtures — they don't require a running server.
Build a packaged installer
npm run package:win # or package:mac / package:linuxProduces a self-contained installer (vendored Node runtime, no system Node required) under dist/.
License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA water treatment process simulation engine that exposes WaterTAP capabilities through MCP and CLI adapters, enabling AI agents to build, solve, and optimize flowsheets using natural language.1MIT

idfkit-mcpofficial
AlicenseAqualityBmaintenanceEnables AI assistants to create, edit, and simulate EnergyPlus building energy models via natural language. Supports schema exploration, model editing, simulation execution, and documentation search.392MIT- AlicenseNot gradedqualityBmaintenanceEnables AI clients to interact with EDA projects via natural language by wrapping EDI's gRPC interface, CLI tools, and ANSYS HFSS as MCP tools supporting SSE and stdio transports.1MIT
- AlicenseBqualityBmaintenanceEnables LLMs to load, simulate, modify, and generate what-if scenarios for EPANET water-distribution network models through natural language, leveraging the ePyT Python Toolkit.443MIT
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Run AI customer support from your terminal: conversations, knowledge base, and chat widget.
Machine-readable utilities and datasets for AI agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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