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 対応

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

ePyT(EPANET Python Toolkit)を通じて、 EPANET の水道ネットワークモデリング機能を提供する Model Context Protocol(MCP) サーバーです。

MCP に対応した LLM であれば、水道ネットワークモデルの読み込み、 シミュレーションの実行、パラメーターの変更、複雑な仮定シナリオの作成を 自然言語で行えます。


機能

カテゴリツール
読み込みと確認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 の基底需要を 2 倍にして、シミュレーションを再実行してください。圧力はどのように変化しますか?」

「漏水率 20% で、管 10 の破裂をシミュレーションしてください。」

「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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。