Epyt_MCP_Server / README.md
razaali10's picture
Upload 7 files
5c027f4 verified
|
Raw
History Blame Contribute Delete
2.28 kB
---
title: EPANET MCP Server
emoji: πŸ’§
colorFrom: blue
colorTo: indigo
sdk: docker
app_port: 7860
pinned: false
license: mit
short_description: EPANET/ePyT water-network modelling over MCP (HTTP + SSE)
---
# πŸ’§ EPANET MCP Server
A remote [Model Context Protocol](https://modelcontextprotocol.io) server that exposes
EPANET water-distribution modelling β€” powered by [ePyT](https://github.com/KIOS-Research/EPyT) β€”
to any MCP-capable client. Load `.inp` models, run hydraulic/quality simulations, modify
parameters, and generate what-if scenarios in natural language.
It wraps the upstream [`epanet-mcp-server`](https://pypi.org/project/epanet-mcp-server/)
(44 tools) and serves it over **both** modern transports at once, behind an optional API key.
## Endpoints
| Transport | Path | Clients |
|-----------|------|---------|
| Streamable HTTP | `/mcp` | HuggingChat, Codex, Perplexity, Gemini, ChatGPT (dev mode) |
| HTTP + SSE | `/sse` | Claude Desktop (via `mcp-remote`), other legacy clients |
| Health probe | `/health` | uptime checks (no auth) |
Base URL once deployed: `https://<owner>-<space-name>.hf.space`
## Authentication
Set a Space **secret** named `CLIENT_API_KEY`. When present, every request to `/mcp`,
`/sse`, and `/messages/` must send it:
```
Authorization: Bearer <YOUR_KEY>
```
(`X-API-Key: <YOUR_KEY>` is also accepted.) Leave the secret unset to run open β€” useful for
ChatGPT connectors, which only support OAuth or no-auth. `/` and `/health` are always public.
## Networks
ePyT ships 52 benchmark networks (Net1/2/3, Hanoi, Anytown, L-TOWN, Balerma, …) β€” call
`list_bundled_networks` to see them. Custom networks are bundled under
`/home/user/app/networks/` and loaded by absolute path, e.g.:
```
load_network("/home/user/app/networks/net3.inp", "net3")
```
Bundled here: `net3.inp`, `net3_PDD.inp`, `ky4.inp`, `ky10.inp`, `Net6.inp`, `BIWS.inp`.
## Smoke test
`smoke_test.py` runs the full MCP handshake (initialize β†’ tools/list β†’ tools/call) over
both transports and checks the auth gate:
```
python smoke_test.py --base-url https://<owner>-<space-name>.hf.space --api-key <YOUR_KEY>
```
See `CLIENTS.md` for copy-paste connection configs for each client.
Built on `epanet-mcp-server` by Applied-AI-Eurecat (MIT).