mcpField
E
EPANET MCP Server

EPANET MCP Server

本地服务
github.com/Applied-Artificial-Intelligence-Eurecat科研与教育921 周前更新

关于 EPANET MCP Server

EPANET MCP Server 通过 ePyT 将 EPANET 供水管网建模与模拟能力提供给 MCP 客户端,面向水系统分析人员。它支持检查和修改网络、运行水力与水质模拟,并创建独立的情景会话。

主要功能

  1. 01加载与检查网络模型
  2. 02运行水力和水质模拟
  3. 03修改管网参数与控制
  4. 04生成故障和需求情景
  5. 05情景使用独立会话

适用场景

  1. 01分析节点压力与管道流量
  2. 02评估需求变化对管网的影响
  3. 03模拟泄漏或污染事件
  4. 04比较泵阀故障情景

MCP 相关

该 MCP 服务将 ePyT 的网络加载、检查、模拟、修改和情景分析工具开放给 MCP 客户端,支持 stdio 与 SSE/HTTP 传输。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"applied-artificial-intelligence-eurecat-epanet": {
"command": "uvx",
"args": [
"epanet-mcp-server"
]
}
}
}
启动命令uvx epanet-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypiepanet-mcp-server0.1.2

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

EPANET MCP 服务

Linter Pytest PyPI version MCP Registry

一个 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

要求

  • Python ≥ 3.10
  • ePyT ≥ 2.0
  • mcp ≥ 1.0
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

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。