{"name":"io.github.Applied-Artificial-Intelligence-Eurecat/epanet-mcp-server","slug":"applied-artificial-intelligence-eurecat-epanet-mcp-server","title":"EPANET MCP Server","description":"MCP server for EPANET water-distribution network simulation and scenario analysis.","url":"https://mcp.market/server/applied-artificial-intelligence-eurecat-epanet-mcp-server","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":13,"stars":5,"forks":1,"downloads_week":null,"last_push_at":"2026-06-02T11:51:50.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Applied-Artificial-Intelligence-Eurecat/epanet-mcp-server","website":null,"version":"0.1.2","remotes":[],"packages":[{"registryType":"pypi","identifier":"epanet-mcp-server","version":"0.1.2","transport":{"type":"stdio"}}],"tools":[{"name":"add_control","description":"Add a new simple control rule.","write_action":false,"price_micros":0,"input_schema":null},{"name":"add_pattern","description":"Add a new demand / operational pattern to the network.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_contamination_event","description":"Inject a contaminant at a node for a specified time window and simulate.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_demand_perturbation","description":"Apply base-demand multipliers to a set of nodes and optionally simulate.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_leakage_event","description":"Simulate a pipe burst by adding a leakage emitter at the pipe midpoint.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_multi_failure_scenario","description":"Simulate simultaneous pipe and/or pump failures (closure).","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_pressure_change_scenario","description":"Study pressure changes by modifying reservoir heads.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_pump_control_scenario","description":"Apply a time-based pump on/off or speed schedule and simulate.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_valve_control_scenario","description":"Apply static valve-setting changes and simulate.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_control","description":"Delete a simple control by its 1-based index.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_controls","description":"Return all simple controls defined in the network.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_curves","description":"Return all curves (pump head, efficiency, volume, valve) in the network.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_flow_at_time","description":"Return link flows at (or nearest to) a specific simulation time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_links","description":"Return all links (pipes, pumps, valves) with their attributes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_network_summary","description":"Return a high-level summary of a loaded network.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_nodes","description":"Return all nodes (junctions, tanks, reservoirs) with their attributes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_options","description":"Return simulation options: timesteps, units, quality settings, head-loss formula, and demand model.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_patterns","description":"Return all demand / operational patterns defined in the network.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_pressure_at_time","description":"Return node pressures at (or nearest to) a specific simulation time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_bundled_networks","description":"List every .inp example file bundled with ePyT (usable with load_network).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_networks","description":"Return the ids of all currently loaded networks.","write_action":false,"price_micros":0,"input_schema":null},{"name":"load_network","description":"Load an EPANET .inp file into a named session.","write_action":false,"price_micros":0,"input_schema":null},{"name":"run_full_simulation","description":"Run both hydraulic and water-quality simulations and return combined time-series results (pressures, flows, quality, reaction rates, etc.).","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_hydraulic_simulation","description":"Run a full hydraulic simulation and return time-series results.","write_action":true,"price_micros":0,"input_schema":null},{"name":"run_quality_simulation","description":"Run a full water-quality simulation and return time-series results.","write_action":true,"price_micros":0,"input_schema":null},{"name":"save_network","description":"Save the current (possibly modified) network to a new .inp file.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_hydraulic_timestep","description":"Set the hydraulic time step.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_node_base_demand","description":"Set the base demand for a junction node.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_pattern","description":"Overwrite all multiplier values for a named demand pattern.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_pipe_diameter","description":"Set the diameter of a pipe.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_pipe_length","description":"Set the length of a pipe.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_pipe_roughness","description":"Set the roughness coefficient of a pipe.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_pipe_status","description":"Open or close a pipe.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_pump_head_curve","description":"Set (replace) the head-flow curve of a pump.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_pump_speed","description":"Set the relative speed setting of a pump.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_pump_status","description":"Start or stop a pump.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_quality_timestep","description":"Set the water-quality simulation time step.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_quality_type","description":"Set the water-quality analysis type.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_reservoir_head","description":"Set the total head (water-surface elevation) of a reservoir.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_simulation_duration","description":"Set the total simulation duration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_tank_parameters","description":"Update one or more parameters of a tank node.","write_action":true,"price_micros":0,"input_schema":null},{"name":"set_valve_setting","description":"Set the initial setting of a valve.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_valve_status","description":"Open or close a valve.","write_action":false,"price_micros":0,"input_schema":null},{"name":"unload_network","description":"Unload a previously loaded network and free its resources.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-27T12:16:51.811Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-27T12:16:51.866Z","components":{"code":{"score":25,"max":25,"notes":["10 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":8,"max":15,"notes":["last push 117 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"epanet-mcp-server","version":"0.1.2","found":true,"license":"MIT","dependencyCount":8,"publishedAt":"2026-06-02T11:30:29.607784Z"}],"repo":{"found":true,"owner":"Applied-Artificial-Intelligence-Eurecat","repo":"epanet-mcp-server","archived":false,"pushedAt":"2026-06-02T11:51:50Z","stars":5,"forks":1,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/106808865?v=4","ownerCreatedAt":"2022-06-03T09:36:37Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/106808865?v=4&s=128","source":"github"},"presence":{"stars":5,"forks":1,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-06-02T11:51:50.000Z","score":13}}}},"grade_history":[],"reviews":[]}