Skip to main content

A Model Context Protocol server providing tools to simulate and analyse EPANET water distribution networks

Project description

KWR's EPANET MCP server

Overview

A Model Context Protocol server for EPANET water distribution network simulation and analysis. This server provides tools to load, simulate, visualise, and modify hydraulic network models via Large Language Models.

Please note that mcp-server-epanet is currently in early development. The functionality and available tools are subject to change and expansion as we continue to develop and improve the server.

Publication

This work was presented at the 16th International Conference on Hydroinformatics (HIC 2026), Zaragoza, Spain, June 22–26, 2026.

If you use this software in your research, please cite the conference paper:

@inproceedings{zanutto2026epanetmcp,
  title     = {Conversational Hydraulic Modelling: An Open-source Model Context Protocol Server for {EPANET}},
  author    = {Zanutto, Dennis and Michalopoulos, Christos and Savi\'{c}, Dragan},
  booktitle = {TOADD},
  year      = {2026},
  address   = {Zaragoza, Spain},
  doi = {TOADD},
}

If you specifically reference the code or software package, also cite the Zenodo release:

@software{zanutto2026epanetmcp_software,
  title   = {The {EPANET} {MCP} server},
  author  = {Zanutto, Dennis and Michalopoulos, Christos},
  year    = {2025},
  doi     = {10.5281/zenodo.17771952},
  version = {Concept (all versions)},
}

Tools

TODO

Installation

Using uv (recommended)

When using uv no specific installation is needed. We will use uvx to directly run mcp-server-epanet.

Using PIP

Alternatively you can install mcp-server-epanet via pip:

pip install mcp-server-epanet

After installation, you can run it as a script using:

python -m mcp_server_epanet

Configuration

Usage with Claude Desktop

Add this to your claude_desktop_config.json:

Using uvx
"mcpServers": {
  "epanet": {
    "command": "uvx",
    "args": ["mcp-server-epanet"]
  }
}
Using pip installation
"mcpServers": {
  "epanet": {
    "command": "python",
    "args": ["-m", "mcp_server_epanet"]
  }
}

Usage with VS Code

For manual installation, add the configuration to a file called .vscode/mcp.json in your workspace:

{
  "servers": {
    "epanet": {
      "command": "uvx",
      "args": ["mcp-server-epanet"]
    }
  }
}

Or using a local uv installation:

{
  "servers": {
    "epanet": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "mcp-server-epanet"]
    }
  }
}

For more details about MCP configuration in VS Code, see the official VS Code MCP documentation.

Debugging

You can use the MCP inspector to debug the server. For uvx installations:

npx @modelcontextprotocol/inspector uvx mcp-server-epanet

Or if you are developing locally:

cd path/to/epanet-mcp-server
npx @modelcontextprotocol/inspector uv run mcp-server-epanet

Running tail -n 20 -f ~/Library/Logs/Claude/mcp*.log will show the logs from the server and may help you debug any issues.

Development

If you are doing local development, there are two ways to test your changes:

  1. Run the MCP inspector to test your changes. See Debugging for run instructions.

  2. Test using the Claude desktop app. Add the following to your claude_desktop_config.json:

{
  "mcpServers": {
    "epanet": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/epanet-mcp-server",
        "run",
        "mcp-server-epanet"
      ]
    }
  }
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_server_epanet-0.2.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_server_epanet-0.2.0-py3-none-any.whl (7.9 kB view details)

Uploaded Python 3

File details

Details for the file mcp_server_epanet-0.2.0.tar.gz.

File metadata

  • Download URL: mcp_server_epanet-0.2.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_server_epanet-0.2.0.tar.gz
Algorithm Hash digest
SHA256 576b900b0be697365fadbc9ec40484de1e4888861946537bb5110690e3018781
MD5 729b5e4a2ce5eeac575a71ca647a9e2e
BLAKE2b-256 3f7fdfa75e6d5e0f57cceaae857fb7df006756d7d1ef8adb6b42de237c2e4d99

See more details on using hashes here.

File details

Details for the file mcp_server_epanet-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_server_epanet-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for mcp_server_epanet-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2a2371b5f45ef9f71393456cdcf610dfc98850cdbf6936cf8fe8ca802dc8e926
MD5 b813897923bbf01893b3409b9a16306c
BLAKE2b-256 1f4a8bd01066aa055c70783b9769dc9bbee6c930ec2a61cc6e5a1dacbee9103d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page