关于 EPANET MCP Server
EPANET MCP Server 通过 ePyT 将 EPANET 供水管网建模与模拟能力提供给 MCP 客户端,面向水系统分析人员。它支持检查和修改网络、运行水力与水质模拟,并创建独立的情景会话。
主要功能
- 01加载与检查网络模型
- 02运行水力和水质模拟
- 03修改管网参数与控制
- 04生成故障和需求情景
- 05情景使用独立会话
适用场景
- 01分析节点压力与管道流量
- 02评估需求变化对管网的影响
- 03模拟泄漏或污染事件
- 04比较泵阀故障情景
MCP 相关
该 MCP 服务将 ePyT 的网络加载、检查、模拟、修改和情景分析工具开放给 MCP 客户端,支持 stdio 与 SSE/HTTP 传输。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
EPANET MCP 服务
一个 Model Context Protocol (MCP) 服务, 通过 ePyT(EPANET Python 工具包) 提供 EPANET 供水管网建模能力。
任何兼容 MCP 的大模型都可以通过自然语言加载供水管网模型、运行 模拟、修改参数并生成复杂的假设场景。
功能
| 类别 | 工具 |
|---|---|
| 加载和检查 | load_network、unload_network、list_networks、list_bundled_networks、get_network_summary、get_nodes、get_links、get_patterns、get_controls、get_curves、get_options |
| 模拟 | run_hydraulic_simulation、run_quality_simulation、run_full_simulation、get_pressure_at_time、get_flow_at_time |
| 修改 | set_node_base_demand、set_pattern、add_pattern、set_pipe_diameter、set_pipe_roughness、set_pipe_status、set_pipe_length、set_pump_status、set_pump_speed、set_pump_head_curve、set_valve_setting、set_valve_status、set_tank_parameters、set_reservoir_head、set_simulation_duration、set_hydraulic_timestep、set_quality_timestep、set_quality_type、add_control、delete_control、save_network |
| 场景 | create_demand_perturbation、create_leakage_event、create_contamination_event、create_pressure_change_scenario、create_pump_control_scenario、create_valve_control_scenario、create_multi_failure_scenario |
要求
pip install epyt mcp
安装
git clone https://github.com/Applied-Artificial-Intelligence-Eurecat/epanet-mcp-server.git
cd epanet-mcp-server
pip install -e .
运行服务
stdio(适用于 Claude Desktop / Claude Code)
epanet-mcp-server
# or
python -m epanet_mcp.server
SSE / HTTP
epanet-mcp-server --transport sse --port 8000
Claude Desktop 配置
将以下内容添加到 ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS)或平台上的相应文件中:
{
"mcpServers": {
"epanet": {
"command": "epanet-mcp-server",
"args": []
}
}
}
如果不在 PATH 中:
{
"mcpServers": {
"epanet": {
"command": "python",
"args": ["-m", "epanet_mcp.server"],
"cwd": "/path/to/epanet-mcp-server/src"
}
}
}
Claude Code(.mcp.json)
将此文件放在项目根目录或 ~/.claude/ 中:
{
"mcpServers": {
"epanet": {
"command": "epanet-mcp-server",
"args": []
}
}
}
交互示例
连接服务后,你可以提出如下问题:
“加载 Net1.inp 并显示管网摘要。”
“运行完整模拟,并告诉我第 12 小时时哪个节点的压力最低。”
“将 11 号连接点的基本需水量增加一倍,然后重新运行模拟。压力有什么变化?”
“模拟 10 号管道发生破裂,泄漏比例为 20% 的情况。”
“在第 1 到第 3 小时期间,向 11 号节点注入 10 mg/L 的氯,并显示污染扩散情况。”
“如果水库水头从 150 m 降至 120 m,压力会有什么变化?”
“安排 9 号泵在 06:00 启动,并在 22:00 停止。”
“同时关闭 10 号和 11 号管道以及水泵。哪些区域会出现供水中断?”
架构
src/epanet_mcp/
├── server.py # FastMCP server – tool registration + entry point
├── session.py # Thread-safe registry of open ePyT sessions
├── utils.py # numpy → Python serialisation helpers
└── tools/
├── inspection.py # load / inspect network models
├── simulation.py # run hydraulic & quality simulations
├── modification.py# in-memory parameter changes
└── scenarios.py # what-if scenario generators (clone + modify + run)
会话模型:每个已加载的管网都存储在一个具名会话中。场景 工具会自动将源会话克隆到一个新的独立会话中,因此不会修改基准管网。
运行测试
pip install pytest
pytest tests/ -v
内置网络
ePyT 附带许多标准基准网络,包括 Net1、Net2、L-TOWN、
Hanoi、Anytown、Balerma 等。使用 list_bundled_networks 可查看
所有网络。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。